2016-11-14 67 views
0

設置工具提示中,就像將東西一本字典:從工具提示在.NET的WinForms刪除一個控制在WinForm控件

ToolTip tt = new ToolTip(); 
tt.SetToolTip(control, "tooltip text"); 

設置控制到零的文本將使應用程序不顯示工具提示上控制了:

tt.SetToolTip(control, null); 

tt必須持有控制的引用。我想確保刪除(和處置)控件不會導致內存泄漏,所以我需要從工具提示中刪除控件的引用。 設置爲null是否刪除引用?或者將保持控制在它的'詞典'與空值?在後一種情況下如何將這一個控制權移除爲好? (我知道tt.RemoveAll(),但我需要保持其他提示。)

+0

嗨,你可以在這裏找到答案:http://stackoverflow.com/questions/3903878/c-should-object-variables-be-assigned-to-null你不應該設置的值明確地爲空。處理任何你可以處置的事情,其餘的事情由垃圾收集完成。 – Sebi

回答

1

您可以爲Tooltip.SetToolTip的源代碼來看看,
here for SetToolTipInternal
tools是一個Hashtable和傳遞null不會調用tools.Remove(control)

 ... 
     bool exists = false; 
     bool empty = false; 

     if (tools.ContainsKey(control)) { 
      exists = true; 
     } 

     if (info == null || String.IsNullOrEmpty(info.Caption)) { 
      empty = true; 
     } 

     if (exists && empty) { 
      tools.Remove(control); 
     } 
     ... 
+0

我錯過了http://referencesource.microsoft.com ...直到現在! – Feri