Is there a straighforward way to set additional text to appear in a tooltip when a user's mouse is held over an item in a CheckedListBox?
What I would expect to be able to do in code is:
uiChkLstTables.DisplayOnHoverMember = "DisplayOnHoverProperty"; //Property contains extended details
Can anyone point me in the right direction to do this? I've already found a couple of articles that involve detecting which item the mouse is currently over and creating a new tooltip instance, but this sounds a little too contrived to be the best way.
Thanks in advance.
-
Contrived or not; that's what there is...
I'm not aware of an easier way than you have already described (although I'd probably re-use a tooltip instance, rather than creating new all the time). If you have articles that show this, then use them - or use a 3rd party control that supports this natively (none leap to mind).
-
This article on codeproject describes a similar problem for a combobox. Maybe you can get some help from that article.
I don't think, that there's an easier way.
-
Add a Tooltip object to your form and then add an event handler for the CheckedListBox.MouseHover that calls a method ShowToolTip(); Add MouseMove event of your CheckedListBox which has the following code:
//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();Then create the ShowToolTip method:
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()); } } -
Alternately, you could use a
ListViewwith checkboxes instead. This control has builtin support for tooltips.Paul Suart : Thanks for the suggestion, hadn't seen that.Jeremy Wiebe : The annoying thing is that ListView doesn't support data binding (or am I missing something?)
0 comments:
Post a Comment