- 題名: listview のサブアイテムごとのtoolTip表示
- 日時: 2012/12/09 18:47:17
- ID: 31167
- この記事の返信元:
- (なし)
- この記事への返信:
- [31168] Re[1]: listview のサブアイテムごとのtoolTip表示2012/12/10 7:57:49
- ツリーを表示
2012/12/10(Mon) 08:42:57 編集(投稿者) ■No31167に返信(hiroさんの記事) > //ListViewHitTestInfo info = listView2.HitTest(e.Item.Position.X, e.Item.Position.Y); HitTestをもう少し頑張ってみると出来たかと思います。 サンプル private void listView1_MouseMove(object sender, MouseEventArgs e) { var hitpt = e.Location; ListViewHitTestInfo info = listView1.HitTest(hitpt); if (info.SubItem != null) toolTip1.Show(" " + info.SubItem.Text, listView1, hitpt); }
分類:[.NET]
お世話になります。
listView のサブアイテムの特定の列で行ごとに個別のtooltipを表示したいのですがどうやったらできますか?
for (int i = 0; i < komoku2.Length / 3; ++i)
{
string[] item1 = { "Name", data[i], data[i], komokuBlood[i].Code }; <- 例えばとして見てください
ListViewItem lvi = new ListViewItem(item1);
lvi.ToolTipText = normalityRange[i];
lvi.Tag = "abcde";
listView2.Items.Add(lvi);
}
listView2.ShowItemToolTips = true;
上記で表示したいtoolTipのデータを転記しています。
private void listView2_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
{
ToolTip mytip = new ToolTip();
//ListViewHitTestInfo info = listView2.HitTest(e.Item.Position.X, e.Item.Position.Y);
ListViewItem lvi=listView2.GetItemAt(e.Item.Position.X, e.Item.Position.Y);
//int row = info.Item.Index;
//int col = info.Item.SubItems.IndexOf(info.SubItem);
int row = lvi.Index;
// int col = lvi.SubItems.IndexOf(lvi.SubItems.);
mytip.Show(e.Item.ToolTipText, this, e.Item.Position.X, e.Item.Position.Y, 1000);
}
上記で表示させようとしています。しかしこれでは、アイテムのツールチップデータや座標しか取得できないためそれ以降のサブアイテムが表示できません。
listView座標の(2,2)は、このデータ、また、(2,5)は、このデータという具合にtoolTipに表示したいのですが、何かいい方法はないでしょうか?
よろしくお願いします。