Tôi muốn mở rộng câu trả lời của Fermin để có thể làm cho giải pháp tuyệt vời của mình hơi rõ ràng hơn.
Trong biểu mẫu mà bạn đang làm việc (có khả năng trong tệp .Designer.cs), bạn cần thêm trình xử lý sự kiện MouseMove vào hộp kiểm CheckedListBox của bạn (Fermin ban đầu đề xuất trình xử lý sự kiện MouseHover, nhưng điều này không có tác dụng tôi).
this.checkedListBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.showCheckBoxToolTip);
Tiếp theo, thêm hai thuộc tính lớp mẫu của bạn, một đối tượng ToolTip và một số nguyên để theo dõi các hộp kiểm cuối cùng có mũi công cụ được hiển thị
private ToolTip toolTip1;
private int toolTipIndex;
Cuối cùng, bạn cần phải thực hiện các showCheckBoxToolTip() phương pháp. Phương thức này rất giống với câu trả lời của Fermin, ngoại trừ việc tôi kết hợp phương thức gọi lại sự kiện với phương thức ShowToolTip(). Ngoài ra, lưu ý rằng một trong các tham số phương thức là một MouseEventArgs. Điều này là do thuộc tính MouseMove yêu cầu một MouseEventHandler, sau đó cung cấp 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());
}
}
}
Nguồn
2015-03-22 20:58:50
chú ý, lệnh ' Điểm p' là không cần thiết – Maslow