2011-05-30 49 views
0

在WinForms控件中,如何在禁用編輯功能(LabelEdit屬性)時單擊像ListView,TreeView等控件項目時禁用標籤編輯?禁用鼠標單擊操作中的標籤編輯

我想這樣做,因爲以下行爲是煩人和有問題的:「選擇其中一個控件的項目,將焦點更改爲其他應用程序,再次單擊項目」,然後標籤編輯會自動開始。也許我只想恢復焦點和選擇。

當您改變同一應用的控件之間的焦點時,會發生類似的情況,但在這種情況下,我會停止此行爲,在進入控件時清除項目選擇。

對於第一個無用的描述問題。

+0

爲什麼你要沒有禁用它禁用此?關閉「LabelEdit」屬性*就是您正在尋找的解決方案。您仍然可以通過代碼編輯標籤,但用戶無法通過點擊進行編輯。 – 2011-05-30 15:15:31

+0

XD @Cody在你寫完問題並進入可視化後,你是對的,解決方案出現在我的腦海裏,我默認禁用標籤,然後如果我按下F2啓用它,然後調用BeginEdit()方法。在AfterLabelEdit事件處理程序中,我再次禁用它。 – mjsr 2011-05-30 15:33:26

+1

這有副作用,當你這樣做時,原生Windows控件會重新創建。您留下了一些非常重要的細節,讓SO用戶很少有機會爲您提供幫助。你爲什麼不放棄標籤編輯,無論如何都是用戶的皮塔。只需在TextBox中顯示選定節點的文本。 – 2011-05-30 17:52:35

回答

2

你可以做,通過處理樹的BeforeLabelEdit

private void treeView1_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e) 
    { 
//if you want to edit in some special case write your condition here 
     e.CancelEdit = true; 
    }