フェルミンの素晴らしい解決策をもう少し明確にするために、フェルミンの答えをさらに詳しく説明したいと思います。
作業しているフォーム(おそらく.Designer.csファイル内)で、MouseMoveイベントハンドラーをCheckedListBoxに追加する必要があります(Ferminは元々MouseHoverイベントハンドラーを提案しましたが、これは私には機能しませんでした)。
this.checkedListBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.showCheckBoxToolTip);
次に、ツールチップオブジェクトと整数の2つのクラス属性をフォームに追加して、ツールチップが表示された最後のチェックボックスを追跡します。
private ToolTip toolTip1;
private int toolTipIndex;
最後に、showCheckBoxToolTip()メソッドを実装する必要があります。このメソッドは、イベントコールバックメソッドをShowToolTip()メソッドと組み合わせたことを除いて、Ferminの回答と非常によく似ています。また、メソッドパラメータの1つがMouseEventArgsであることに注意してください。これは、MouseMove属性にMouseEventHandlerが必要であり、MouseEventHandlerがMouseEventArgsを提供するためです。
private void showCheckBoxToolTip(object sender, MouseEventArgs e)
{
if (toolTipIndex != this.checkedListBox.IndexFromPoint(e.Location))
{
toolTipIndex = checkedListBox.IndexFromPoint(checkedListBox.PointToClient(MousePosition));
if (toolTipIndex > -1)
{
toolTip1.SetToolTip(checkedListBox, checkedListBox.Items[toolTipIndex].ToString());
}
}
}