我正在尝试使用Tooltip类在鼠标移动到listview子项目时显示自定义详细信息。为了做到这一点,我使用this question中提到的方法。基本上,它在鼠标下找到子项并为listview设置工具提示。
但我无法使其发挥作用。我发现如果我多次在列表视图上调用tooltip.SetToolTip方法,则根本不会出现工具提示。
为了演示这一点,我只需创建一个Windows窗体应用程序并删除一个列表视图和一个工具提示控件。在show event事件中,我写道:
private void Form1_Shown(object sender, EventArgs e)
{
toolTip1.SetToolTip(listView1, "Hello World");
toolTip1.SetToolTip(listView1, "Hello");
}
当我在上面做的时候,根本没有显示任何工具提示。当我评论其中一条线时,它工作得很好。我不知道我做错了什么。
答案 0 :(得分:1)
这似乎是框架中的错误。 一旦您使用tooltip1.SetTooltip(listView1,“ Text”)两次,整个ToolTip控件就会损坏,并且不再显示与此工具提示相关联的任何工具提示。 对我来说,唯一的解决方案是在重新分配工具提示之前重新初始化它
toolTip1.SetToolTip(listView1, "Text");
toolTip1 = new ToolTip();
toolTip1.SetToolTip(listView1, "New Text");
这仅适用于ListViews!例如标签,按钮等,您可以反复使用SetToolTip。
答案 1 :(得分:0)
如果要在列表视图的每个项目上显示工具提示文本,可以使用以下代码。
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;
}