0

我有listview对象,其中有几列。其中一列不适合所有文本信息,并且文本已被剪切。我需要实现这样的事情:当用户将鼠标光标移动到该列的单元格时,会显示所有文本。有可能这样做吗?我现在有:

 protected ListViewItem GetItem(ListView listView, Point mousePosition)
    {
       Point localPoint = listView.PointToClient(mousePosition);
       return listView.GetItemAt(localPoint.X, localPoint.Y);
    }

    private void myListView_MouseMove(object sender, MouseEventArgs e)
    {
       ListViewItem item = GetItem(myListView, Cursor.Position); 
       // or should I use e.Location instead of  Cursor.Position?

       item.ToolTipText = "my info"//Now I need to show "my info" on the cell 
       //that user move cursor on
    }
4

2 回答 2

0

试试这个代码

ListViewItem iListView = new ListViewItem("add");
iListView.ToolTipText = "Add Expanded";
myListView.Items.Add(iListView);

通过将 ListView 的 ShowItemToolTips 属性设置为 true 来执行此操作

于 2012-12-17T13:50:06.243 回答
0

使用列表显示体面的工具提示的一种旧方法是隐藏标签并使其在所需位置可见,并在所需的持续时间内显示所需的文本。这样做的好处可能是多线、多色提示。

所以它是这样工作的:

  • 标签位于列表视图或表单上,它是不可见的。
  • 在鼠标移动时,您可以使用鼠标 X 和 Y 获取项目数据。位置、大小并显示填充数据的标签。
  • label 本身可以有一个计时器,它会在 label 可见时启动,并在 5 秒内使其不可见。

我记得今年就是这样做的。虽然我的“工具提示”是在列表框上完成的。用文本框替换标签,突然你可以让单元格中的数据可编辑:o)

于 2012-12-17T22:18:44.797 回答