Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#-如何用另一种方法与对象交互?_C#_Listview_Label_Edit_Listviewitem - Fatal编程技术网

c#-如何用另一种方法与对象交互?

c#-如何用另一种方法与对象交互?,c#,listview,label,edit,listviewitem,C#,Listview,Label,Edit,Listviewitem,我正在使用TreeView&ListView填充自制的Windows资源管理器;我现在正在创建一个新文件夹。我想做的是,当我按下“新建文件夹”按钮时,会添加一个名为“新建文件夹”的新listView项目。然后,让用户使用BeginEdit()方法键入文件夹的名称 在listView1\u AfterLabelEdit方法中,我使用Directory.CreateDirectory(“C:\”+e.Label)语句以创建新文件夹。 但是现在,我想更改上面的“newFolder”ListViewIt

我正在使用TreeView&ListView填充自制的Windows资源管理器;我现在正在创建一个新文件夹。我想做的是,当我按下“新建文件夹”按钮时,会添加一个名为“新建文件夹”的新listView项目。然后,让用户使用BeginEdit()方法键入文件夹的名称

listView1\u AfterLabelEdit
方法中,我使用
Directory.CreateDirectory(“C:\”+e.Label)语句以创建新文件夹。
但是现在,我想更改上面的“newFolder”ListViewItem的一些属性(例如标记、工具提示项…-以供其他使用)。我如何与
按钮中的ListView项进行交互???

真的希望你们能帮忙!非常感谢先进的技术

newFolder
仅在
buttonNewFolder\u 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时,都要尽可能防御性地编写代码,因为它可以在代码中的多个点进行访问

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
        }