2012-12-17 47 views
0

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

回答

0

一个老办法试试这个代码

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

这样做是为了显示体面的工具提示使用列表是隐藏标签并使其在所需的位置可见,所需的文本为期望的持续时间。这可能是多线,多色提示的好处。

所以它的工作原理是这样的:

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

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

0

通过ListView控件的ShowItemToolTips属性设置为true

+0

我不需要添加新项目 –

相关问题