【问题标题】:Calling SetToolTip on ListView multiple times, shows no tooltip at all在 ListView 上多次调用 SetToolTip,根本不显示任何工具提示
【发布时间】:2014-01-01 12:55:24
【问题描述】:

我正在尝试使用Tooltip 类在鼠标移到列表视图子项上时显示自定义详细信息。为此,我使用this question 中提到的方法。基本上,它会找到鼠标下的子项并设置列表视图的工具提示。

但我无法让它工作。我发现如果我在列表视图上多次调用tooltip.SetToolTip 方法,根本不会出现任何工具提示。

为了演示这一点,我简单地创建了一个 Windows 窗体应用程序并删除了一个列表视图和一个工具提示控件。在表单展示活动中,我写道:

private void Form1_Shown(object sender, EventArgs e)
{
    toolTip1.SetToolTip(listView1, "Hello World");
    toolTip1.SetToolTip(listView1, "Hello");
}

当我执行上述操作时,根本不显示任何工具提示。当我评论其中一行时,它工作得很好。我不知道我做错了什么。

【问题讨论】:

    标签: c# .net winforms listview tooltip


    【解决方案1】:

    这似乎是框架中的一个错误。 只要您使用 tooltip1.SetTooltip(listView1, "Text") 两次,整个 ToolTip 控件就会被破坏,并且不会再显示与具有此 ToolTip 的任何控件相关联的 ToolTip。 对我来说,唯一的解决方案是在重新分配之前重新初始化工具提示

    toolTip1.SetToolTip(listView1, "Text");
    toolTip1 = new ToolTip();
    toolTip1.SetToolTip(listView1, "New Text");
    

    这只发生在 ListViews 上!例如标签、按钮等您可以反复使用 SetToolTip。

    【讨论】:

      【解决方案2】:

      如果你想在列表视图的每个项目上显示工具提示文本,可以使用以下代码。

      private void FillListView()
      {
          listView1.ShowItemToolTips = true;
      
          ListViewItem item1 = new ListViewItem("Item 1");
          item1.ToolTipText = item1.Text;
          listView1.Items.Add(item1);
      
          ListViewItem item2 = new ListViewItem("Item 2");
          item2.ToolTipText = item2.Text;
          listView1.Items.Add(item2);
      
          ListViewItem item3 = new ListViewItem("Item 3");
          item3.ToolTipText = item3.Text;
          listView1.Items.Add(item3);
      }
      

      或者你可以迭代listview项并将listviewItems的工具提示文本设置为-

       listView1.ShowItemToolTips = true;
      
       foreach (ListViewItem listViewItem in listView1.Items)
        {
              listViewItem.ToolTipText = listViewItem.Text;
        }  
      

      【讨论】:

      • 如问题中所述,我想为 subitems 设置 custom 工具提示。没有为列表视图子项设置工具提示的选项。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      相关资源
      最近更新 更多