0
對WinForm
有TreeView
控件。事件處理程序依賴於呼叫指令
在AfterSelect
事件是私人字段selectedFolder
已更新。
對於事件OnKeyDown
爲Delete
關鍵是事件處理程序實現該交互數據訪問層:selectedFolder
作爲參數傳遞到方法DeleteFolder
。該選擇的節點TreeView
也將被刪除
守則以下問題:它工作正常只有當DeleteFolder
先叫:
DeleteFolder
(selectedFolder
)// selectedFolder正常#.SelectedNode.Remove
如果我嘗試:
#.SelectedNode.Remove
//AfterSelect
被調用。 selectedFolder現在是父節點DeleteFolder
(selectedFolder
)// selectedFolder是錯誤
正如我提到的這個代碼有難聞的氣味。是不是?
我應該讓Pull down
重構使selectedFolder
局部變量。 AfterSelect
事件處理程序應該是刪除。
- 填充
selectedFolder
局部變量基於選擇的節點上(從AfterSelect
事件處理程序代碼) #.SelectedNode.Remove
DeleteFolder
(selectedFolder
)
在這種情況下,不依賴於的2.
呼叫順序和3.
。
我不確定有人能夠理解你的問題並提出答案。請張貼一些代碼來解釋它有什麼問題。 –