当用户将鼠标悬停在CheckedListBox中的某个项目上时,是否有一种简便的方法来设置其他文本显示在工具提示中?
我希望能够在代码中执行的操作是:
uiChkLstTables.DisplayOnHoverMember = "DisplayOnHoverProperty"; //Property contains extended details
有人能指出我正确的方向吗?我已经找到了几篇文章,涉及检测鼠标当前位于哪个项目上并创建一个新的工具提示实例,但这听起来有点太虚构了,不是最好的方法。
提前致谢。
最佳答案
将一个Tooltip对象添加到您的窗体,然后为CheckedListBox.MouseHover添加一个事件处理程序,该事件处理程序调用方法ShowToolTip();。
添加CheckedListBox的MouseMove事件,该事件具有以下代码:
//Make ttIndex a global integer variable to store index of item currently showing tooltip.
//Check if current location is different from item having tooltip, if so call method
if (ttIndex != checkedListBox1.IndexFromPoint(e.Location))
ShowToolTip();
然后创建ShowToolTip方法:
private void ShowToolTip()
{
ttIndex = checkedListBox1.IndexFromPoint(checkedListBox1.PointToClient(MousePosition));
if (ttIndex > -1)
{
Point p = PointToClient(MousePosition);
toolTip1.ToolTipTitle = "Tooltip Title";
toolTip1.SetToolTip(checkedListBox1, checkedListBox1.Items[ttIndex].ToString());
}
}