나는 그의 훌륭한 솔루션을 약간 더 분명하게하기 위해 Fermin의 답변을 확대하고 싶습니다.
.Designer.cs 파일에서 작업하는 형태로 CheckedListBox에 MouseMove 이벤트 처리기를 추가해야합니다 (Fermin은 원래 MouseHover 이벤트 처리기를 제안했지만이 기능은 작동하지 않았습니다). 나를).
this.checkedListBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.showCheckBoxToolTip);
다음, 두 개의 클래스가 도구 팁 마지막으로
private ToolTip toolTip1;
private int toolTipIndex;
나타났다 마지막으로 체크 박스를 추적 할 양식, 도구 설명 개체와 정수 속성을 추가, 당신은 showCheckBoxToolTip를 구현해야() 메소드를 호출합니다. 이 메소드는 이벤트 콜백 메소드를 ShowToolTip() 메소드와 결합한다는 점을 제외하고 Fermin의 대답과 매우 유사합니다. 또한 메서드 매개 변수 중 하나는 MouseEventArgs입니다. 이는 MouseMove 속성에 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());
}
}
}
의' 포인트 p' 라인은 필요 없습니다 – Maslow