本文實(shí)例為大家分享了winform編輯器的具體實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下
1
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
|
using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawing; using system.linq; using system.text; using system.threading.tasks; using system.windows.forms; using system.data.sqlclient; using system.io; namespace winformdemo { public partial class form1 : form { public form1() { initializecomponent(); //讓textbox2隱藏 this .textbox2.visible = false ; //讓datagridview1表中的最后一行空值隱藏掉 this .datagridview1.allowusertoaddrows = false ; } sqlconnection con = new sqlconnection(); sqlcommand com = new sqlcommand(); openfiledialog open = new openfiledialog(); /// <summary> /// 行 /// </summary> string clickrow = "" ; /// <summary> /// 列 /// </summary> string clickcells = "" ; /// <summary> /// 行和列相加的字符串 /// </summary> string sqllanding = "server=.;uid=sa;pwd=123456789;database=myfirstdemo" ; private void datagridview1_cellcontentclick( object sender, datagridviewcelleventargs e) { //獲取正在點(diǎn)擊的行和列。 clickrow = this .datagridview1.rows[e.rowindex].cells[0].value.tostring(); clickcells = this .datagridview1.rows[e.rowindex].cells[1].value.tostring(); } private void form1_load( object sender, eventargs e) { selectinfo(); } public void selectinfo() { //斷開式鏈接查看數(shù)據(jù)庫數(shù)據(jù) con.connectionstring = sqllanding; com.commandtext = "select name as 文件名,txtlujing as 文件路徑 from txtbianjiqi" ; com.connection = con; dataset ds = new dataset(); sqldataadapter sda = new sqldataadapter(com); sda.fill(ds); this .datagridview1.datasource = ds.tables[0]; } private void 打開toolstripmenuitem_click( object sender, eventargs e) { string filepath = clickcells + clickrow; this .textbox2.visible = true ; try { //只讀流; filestream fss = new filestream(filepath, filemode.openorcreate, fileaccess.read); streamreader sww = new streamreader(fss, encoding. default ); textbox2.text = sww.readtoend(); sww.close(); fss.close(); } catch (exception ex) { //如果沒有選擇路徑提示出一句話; messagebox.show( "查看路徑錯(cuò)誤:" + ex.message); } } private void 保存toolstripmenuitem_click( object sender, eventargs e) { string filepath = clickcells + clickrow; try { //只寫流; filestream fss = new filestream(filepath, filemode.create, fileaccess.write); streamwriter sww = new streamwriter(fss, encoding. default ); sww.write(textbox2.text); sww.close(); fss.close(); messagebox.show( "保存成功!" ); } catch (exception ex) { //如果沒有選擇路徑提示出一句話; messagebox.show( "保存路徑錯(cuò)誤:" + ex.message); } this .textbox2.visible = false ; } private void 新建toolstripmenuitem_click( object sender, eventargs e) { this .textbox2.text = "" ; string localfilepath = "" ; string filenameext = "" ; string flie = "" ; savefiledialog savefiledialog = new savefiledialog(); //打開默認(rèn)的文件目錄 savefiledialog.initialdirectory = "d:\\\\text\\" ; //文件后綴名 savefiledialog.filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*" ; savefiledialog.filterindex = 2; string lujing = savefiledialog.initialdirectory; if (savefiledialog.showdialog() == dialogresult.ok) { flie = savefiledialog.filename; //文件目錄名 localfilepath = savefiledialog.filename.tostring(); //截取文件名字 filenameext = localfilepath.substring(localfilepath.lastindexof( "\\" ) + 1); } string sql = "select name from txtbianjiqi" ; sqlcommand co = new sqlcommand(sql, con); sqldataadapter da = new sqldataadapter(co); dataset dss = new dataset(); da.fill(dss); //循環(huán)判斷傳入的表中name for ( int i = 0; i < dss.tables[0].rows.count; i++) { //定一個(gè)變量去接獲取出來name string ss = dss.tables[0].rows[i][0].tostring(); //判斷對(duì)話框里輸入的值是否與查出來的name相同 if (filenameext == ss) { messagebox.show( "文件已更改!" ); return ; } } try { //只寫流 filestream fs = new filestream(flie, filemode.create, fileaccess.write); streamwriter sw = new streamwriter(fs, encoding. default ); //對(duì)話框另存為。 sw.write(textbox2.text); sw.flush(); fs.close(); con.connectionstring = sqllanding; //往數(shù)據(jù)庫添加 文件名和路徑名 sql語句 com.commandtext = string .format( "insert into txtbianjiqi(name,txtlujing)values('{0}','{1}')" , filenameext, lujing); com.connection = con; con.open(); int insertinto = convert.toint32(com.executescalar()); if (insertinto > 0) { messagebox.show( "操作失敗!請(qǐng)重試。" ); } else { messagebox.show( "添加成功!" ); this .textbox2.visible = false ; } } catch (exception ex) { messagebox.show( "添加日志失敗:" + ex.message); } con.close(); selectinfo(); } private void 刪除toolstripmenuitem_click( object sender, eventargs e) { con.connectionstring = sqllanding; //從數(shù)據(jù)庫刪除正在點(diǎn)擊的文件名 com.commandtext = string .format( "delete from txtbianjiqi where name='{0}'" , clickrow); com.connection = con; con.open(); dialogresult dr = messagebox.show( "確認(rèn)刪除?" , "提示" , messageboxbuttons.okcancel, messageboxicon.information); if (dr == dialogresult.ok) { int insertinto = convert.toint32(com.executescalar()); if (insertinto > 0) { messagebox.show( "操作失誤!!" ); } else { //file.delete(clickcells + clickrow);刪除windows里的文件,括號(hào)里是要?jiǎng)h除文檔的路徑。 file.delete(clickcells + clickrow); messagebox.show( "刪除成功!" ); } } con.close(); selectinfo(); } private void 退出toolstripmenuitem_click( object sender, eventargs e) { this .close(); } } } |
就是寫了一個(gè)挺簡單的在winform里進(jìn)行填寫文本,里面用到的ado.net來鏈接數(shù)據(jù)庫,在新建文本的時(shí)候需要寫入.txt后綴名,打開或者是刪除的時(shí)候需要先點(diǎn)擊一下文本名。 寫的不足請(qǐng)見諒!
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/shigezhuang/archive/2017/08/21/7406131.html