簡體   English   中英

CodeGo.net>如何與對象在另一種方法進行交互?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM