2012-12-17 60 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

我不需要添加新項目 –

相關問題