五一趁休息时段,在家里编写一个小小的Winform程序练练手,因为已经超级长时间没再开发Winform担心生疏了:);程序也很简单,只是能将文件上传到本地或将路径保存到Sqllite中,没错我这次用Sqllite没想用太大型的数据库,也不想装ACCESS了事,所以用了Sqllite;至于Sqllite的使用嘛,可以看看我以前的一篇文档【 极速40分钟写出SQLite数据展示与导出功能 】,不错的。。
好吧,闲话莫说,直接说说目前遇到的问题,我通过一个treeView作为文档关键词的分类显示,发现treeView除了显示外还可以进行修改不过呢,这个修改不是很太好。1、修改只是当前,没有保存。2、需求是修改关键词,下面的文件关联不能修改。于是就进行研究,研究的结果就是下面的代码:
int nodeIndex = 0;
bool nodeChanged = false;
string nodeName = null;
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
if (e.Node.Tag==null) {
return;
if (e.Button == MouseButtons.Right)
e.Node.BeginEdit();
private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
if (e.Node.Tag == null)
return;
nodeName = e.Node.Text;
nodeIndex = e.Node.Index;
nodeChanged = true;
e.Node.EndEdit(true);
private void treeView1_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
if (nodeChanged == true)
if (treeView1.Nodes[nodeIndex].Text != nodeName) {
MessageBoxButtons mess = MessageBoxButtons.OKCancel;
DialogResult dr = MessageBox.Show("请问是否修改当前的关键词修改为\n\r[" + nodeName+"===>" + treeView1.Nodes[nodeIndex].Text+ "]?", "提示", mess);
if (dr == DialogResult.OK)
var db = new SQLiteConnection(db_Path);
int cid = Convert.ToInt32(treeView1.Nodes[nodeIndex].Tag);
Key_words K = new Key_words() { Id = cid };
K.Name = treeView1.Nodes[nodeIndex].Text;
db.Update(K);
MessageBox.Show("修改成功~");
Read_keyworks();
else {