[英]c# - How to interact with object in another method?
我正在使用TreeView和ListView填充一個自制的Windows資源管理器 ; 並且我目前正在創建新文件夾。 我想做的是,當我按下“ New Folder”按鈕時,將添加一個名為“ New folder”的新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項交互? 真的很希望你們能提供幫助! 非常感謝高級!
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時進行必要的檢查,並盡可能防御性地編寫代碼,因為現在可以在整個代碼中的更多地方訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.