我正在使用TreeView&amp ;;填充一个自制的 Windows资源管理器。的ListView ;我正在开发创建新文件夹。我想要做的是当我按下“新建文件夹”按钮时,将添加一个名为“新文件夹”的新列表视图项。之后,让用户使用BeginEdit()方法键入文件夹的名称。
private void buttonNewFolder_Click(object sender, EventArgs e)
{
ListViewItem newFolder = listView1.Items.Add("New folder", 1);
newFolder.BeginEdit();
}
private void listView1_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
Directory.CreateDirectory("C:\"+e.Label); //for example
// Now how can I change some properties of the "newFolder" listView Item in the above methods (buttonNewFolder_Click) ?
}
在listView1_AfterLabelEdit
方法中,我使用Directory.CreateDirectory("C:\"+e.Label);
语句创建一个新文件夹。
但是现在,我想要更改上述“newFolder”ListViewItem的一些属性(例如Tag,ToolTipItem .. - 另一种用途)。如何在buttonNewFolder_Click
方法中与ListView项进行交互?
真的希望你们能帮忙!非常感谢先进!
答案 0 :(得分:0)
newFolder
仅限于buttonNewFolder_Click
范围内。直接将其移出方法以使其更“全局”可访问:
ListViewItem newFolder;
private void buttonNewFolder_Click(object sender, EventArgs e)
{
newFolder = listView1.Items.Add("New folder", 1);
newFolder.BeginEdit();
}
private void listView1_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
Directory.CreateDirectory("C:\"+e.Label); //for example
//You now have access to newFolder here
}
重要提示:这是一个真正的可能性(取决于这些事件被触发/调用方法的顺序)newFolde
r可能为空。现在可以在整个代码中的更多点访问它,在任一方法中访问newFolder时,尽可能以防御性的方式进行必要的检查。