簡體   English   中英

如何從 TreeView 控件中禁用工具提示?

[英]How can i disable the tooltip from the TreeView control?

我沒有向控件添加任何工具提示。 不在設計器中,不在代碼中。 但是在 TreeView 中的某些項目上,當我將鼠標放在項目上時,我會看到項目名稱的工具提示窗口消息。

無法弄清楚為什么某些項目上有工具提示。

我在設計器中的 TreeView 控件上注冊的唯一事件是 AfterSelect。

private void tvFolders_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
    //Populate folders and files when a folder is selected
    this.Cursor = Cursors.WaitCursor;

    //get current selected drive or folder
    TreeNode nodeCurrent = e.Node;

    //clear all sub-folders
    nodeCurrent.Nodes.Clear();

    if (nodeCurrent.SelectedImageIndex == 0) 
    {
        //Selected My Computer - repopulate drive list
        PopulateDriveList();
    }
    else 
    {
        //populate sub-folders and folder files
        PopulateDirectory(nodeCurrent, nodeCurrent.Nodes);
    }
    this.Cursor = Cursors.Default;
}

在設計師

this.tvFolders.Dock = System.Windows.Forms.DockStyle.Left;
this.tvFolders.ImageIndex = 0;
this.tvFolders.ImageList = this.m_imageListTreeView;
this.tvFolders.Location = new System.Drawing.Point(0, 0);
this.tvFolders.Name = "tvFolders";
this.tvFolders.SelectedImageIndex = 0;
this.tvFolders.Size = new System.Drawing.Size(168, 357);
this.tvFolders.TabIndex = 2;
this.tvFolders.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvFolders_AfterSelect);
// 
// m_imageListTreeView
// 
this.m_imageListTreeView.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("m_imageListTreeView.ImageStream")));
this.m_imageListTreeView.TransparentColor = System.Drawing.Color.Transparent;
this.m_imageListTreeView.Images.SetKeyName(0, "");
this.m_imageListTreeView.Images.SetKeyName(1, "");
this.m_imageListTreeView.Images.SetKeyName(2, "");
this.m_imageListTreeView.Images.SetKeyName(3, "");
this.m_imageListTreeView.Images.SetKeyName(4, "");
this.m_imageListTreeView.Images.SetKeyName(5, "");
this.m_imageListTreeView.Images.SetKeyName(6, "");
this.m_imageListTreeView.Images.SetKeyName(7, "");
this.m_imageListTreeView.Images.SetKeyName(8, "");

我確實想讓當我將鼠標移到 TreeView(tvFolders) 中的一個項目上時,它會顯示一條工具提示消息。

  1. 為什么它顯示在某些項目工具提示消息上而我沒有添加任何內容?

  2. 當我將鼠標移到TreeView一個項目上時,它會顯示帶有項目名稱的工具提示消息,如何做到這一點?

要禁用自動工具提示,您需要使用如下覆蓋代碼將新類文件添加到您的項目中。

using System.Windows.Forms; 

public class MyTreeView : TreeView { 
  protected override CreateParams CreateParams { 
    get { 
      CreateParams parms = base.CreateParams; 
      parms.Style |= 0x80;  // Turn on TVS_NOTOOLTIPS 
      return parms; 
    } 
  } 
} 

然后你需要構建它。 之后,您將擁有一個新控件,即工具箱中的“MyTreeView”控件以供使用。

您只需更改設計器類中的聲明即可使用自定義 TreeView:

this.tvFolders = new MyTreeView();

回答您的問題:

  1. 默認情況下,樹視圖控件會自動為不適合控件邊界的長名稱添加工具提示。
  2. 要強制在每個項目上顯示工具提示,您只需使用 Node.ToolTipText 屬性即可。

資料來源:MSDN 上的這個

暫無
暫無

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

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