0

listviewオブジェクトがあり、その中にいくつかの列があります。列の 1 つがすべてのテキスト情報に収まらず、テキストが切り取られています。このようなものを実装する必要があります: ユーザーがマウス カーソルをこの列のセルに移動すると、すべてのテキストが表示されます。それは可能ですか?今私が持っています:

 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

リストを使用して適切なツールチップを表示する古い方法の1つは、ラベルを非表示にして、目的の場所に目的のテキストを希望の期間表示できるようにすることです。これの利点は、複数行、複数色のチップである可能性があります。

したがって、次のように機能します。

  • ラベルはリストビューまたはフォームに表示され、表示されません。
  • マウスを動かすと、マウスXとYを使用してアイテムデータを取得します。データで満たされたラベルの位置、サイズ、および表示。
  • ラベル自体にタイマーを設定できます。タイマーは、ラベルが表示されたときに開始され、たとえば5秒後に非表示になります。

今年はまさにそれをしたことを覚えています。私の「ツールチップ」はリストボックス上で行われましたが。ラベルをテキストボックスに置き換えると、突然、セル内のデータを編集可能にすることができます:o)

于 2012-12-17T22:18:44.797 に答える
0

このコードを試してください

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

これを行うには、ListView の ShowItemToolTips プロパティを true に設定します。

于 2012-12-17T13:50:06.243 に答える