簡體   English   中英

從.net winforms中的工具提示中刪除一個控件

[英]remove one Control from ToolTip in .net winforms

在winform控件上設置工具提示就像在字典中添加一些內容:

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

將控件的文本設置為null將使應用程序不再在控件上顯示工具提示:

tt.SetToolTip(control, null);

tt必須持有對控制的引用。 我想確保刪除(和處置)控件不會導致內存泄漏,因此我需要從工具提示中刪除控件的引用。 設置為null是否會刪除引用? 還是tt將控制權保留在具有空值的“字典”中? 在后一種情況下,如何永久刪除此控件? (我知道tt.RemoveAll(),但我需要保留其他工具提示。)

您可以查看Tooltip.SetToolTip的源代碼,
在這里尋找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);
        }
        ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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