1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Text;
7
using System.Windows.Forms;
8
using System.IO;
9
using System.Drawing.Printing;
10
11
namespace WindowsApplication1
12
{
13
public partial class TextEditor : Form
14
{
15
private string filename;
16
public TextEditor(WindowsApplication1.Main parent)
17
{
18
this.MdiParent = parent;
19
InitializeComponent();
20
}
21
22
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
23
{
24
25
if (MessageBox.Show("你确定要退出么?", "退出", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)==DialogResult.Yes )
26
this.Close();
27
28
29
}
30
31
private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
32
{
33
34
openFileDialog1.Title = "打开";
35
//openFileDialog1.InitialDirectory=@"d:\program files"; //初始目录,注意不要使用硬编码的目录字符串,可能该目录不存在
36
openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //打开系统定义的目录
37
38
openFileDialog1.Filter = "文本文件 (*.txt)|*.txt|VB程序文件 (*.vb)|*.vb |所有文件 (*.*)|*.*|C#类型文件 (*.cs;*.cd)|*.cs;*.cd";
39
openFileDialog1.FilterIndex = 3; //默认选择过滤类型 从1开始
40
41
if (openFileDialog1.ShowDialog() == DialogResult.OK)
42
{
43
filename=openFileDialog1.FileName;
44
// listBox1.Items.Add(openFileDialog1.FileName);
45
//foreach (string fl in openFileDialog1.FileNames)
46
//{
47
// listBox1.Items.Add(fl);
48
//}
49
50
OpenFile();
51
52
GetFileName();
53
54
}
55
}
56
57
private void OpenFile()
58
{
59
try
60
{
61
62
textBox1.Clear();
63
textBox1.Text = File.ReadAllText(filename, Encoding.Default);
64
//textBox1.Text = File.ReadAllText(filename);
65
//StringBuilder strb = new StringBuilder();
66
67
//using (StreamReader sr = new StreamReader(filename))
68
//{
69
// while (sr.Peek() >= 0)
70
// {
71
// //Console.WriteLine(sr.ReadLine());
72
// strb.Append(sr.ReadLine() );
73
// }
74
//}
75
//textBox1.Text = strb.ToString();
76
}
77
catch (IOException ex)
78
{
79
MessageBox.Show(ex.Message, "TextEditor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
80
}
81
82
}
83
84
private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
85
{
86
if (!(filename == null))
87
SaveFile();
88
else
89
{
90
91
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
92
{
93
filename = saveFileDialog1.FileName;
94
SaveFile();
95
}
96
}
97
}
98
99
private void SaveFile()
100
{
101
try
102
{
103
File.WriteAllText(filename, textBox1.Text);
104
}
105
catch (IOException ex)
106
{
107
MessageBox.Show(ex.Message, "TextEditor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
108
}
109
}
110
111
private void TextEditor_Load(object sender, EventArgs e)
112
{
113
//textBox1.Clear();
114
//filename = "未命名.txt";
115
}
116
117
private void toolStripMenuItem1_Click(object sender, EventArgs e)
118
{
119
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
120
{
121
filename = saveFileDialog1.FileName;
122
SaveFile();
123
}
124
}
125
126
private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
127
{
128
129
textBox1.Clear();
130
filename = null;
131
this.Text = "TextEditor";
132
133
}
134
135
private void GetFileName()
136
{
137
FileInfo fi = new FileInfo(filename);
138
this.Text = fi.Name + " -TextEditor";
139
}
140
141
private string[] lines;
142
private int linesPrinted;
143
144
private void OnPrintPage(object sender, PrintPageEventArgs e)
145
{
146
int x = e.MarginBounds.Left ;
147
int y = e.MarginBounds.Top ;
148
149
while (linesPrinted < lines.Length)
150
{
151
e.Graphics.DrawString(lines[linesPrinted++], new Font("Arial", 10), Brushes.Black, x, y);
152
y += 15;
153
if (y >= e.PageBounds.Bottom )
154
{
155
e.HasMorePages = true;
156
return;
157
}
158
}
159
160
linesPrinted = 0;
161
e.HasMorePages = false;
162
}
163
164
165
166
private void 打印PToolStripMenuItem_Click(object sender, EventArgs e)
167
{
168
try
169
{
170
if (printDialog1.ShowDialog() == DialogResult.OK)
171
{
172
printDocument1.Print();
173
}
174
}
175
catch (InvalidPrinterException ex)
176
{
177
MessageBox.Show(ex.Message, "Text Editor", MessageBoxButtons.OK, MessageBoxIcon.Error);
178
}
179
180
}
181
182
private void OnBeginPrint(object sender, PrintEventArgs e)
183
{
184
char[] param ={ '\n' };
185
lines = textBox1.Text.Split(param);
186
int i = 0;
187
char[] trimParam ={ '\r' };
188
foreach (string s in lines)
189
{
190
lines[i++] = s.TrimEnd(trimParam);
191
}
192
}
193
194
private void OnEndPrint(object sender, PrintEventArgs e)
195
{
196
lines = null;
197
}
198
199
private void 页面设置UToolStripMenuItem_Click(object sender, EventArgs e)
200
{
201
pageSetupDialog1.ShowDialog();
202
}
203
204
private void 打印预览ToolStripMenuItem_Click(object sender, EventArgs e)
205
{
206
printPreviewDialog1.ShowDialog();
207
208
}
209
210
}
211
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211
