在C#.NET winodws表单中,我处理了不同ListBox项目的手动工具提示文本,如下所示:

private void lstFields_MouseMove(object sender, MouseEventArgs e)
        {

            ListBox lstBox = (ListBox)sender;
            Point listBoxClientAreaPosition = lstBox.PointToClient(System.Windows.Forms.Cursor.Position);
            int idx = lstBox.IndexFromPoint(listBoxClientAreaPosition);
            if (idx == -1)
            {
                //toolTip1.SetToolTip(lstBox, null);
                toolTip1.Hide(lstBox);
                return;
            }
            Field fld = (Field)lstBox.Items[idx];
            string strTooltip = string.Format("Descriptor: {0} , ISO Field Number: {1} , Custom Value : {2}",fld.FieldDescriptor,fld.ISOFieldNumber,fld.CustomValue);
            if (toolTip1.GetToolTip(lstBox) == strTooltip)
            {
                return;
            }

            toolTip1.SetToolTip(lstBox, strTooltip);
        }


它有效,但是当我快速移动鼠标时,先前显示的工具提示不会隐藏。
我该怎么办?

最佳答案

由我查看这篇文章Here

编写另一个Mouse_Leave,并隐藏所有不想显示的工具提示

关于c# - 先前的工具提示仍可通过鼠标移动,并且不会刷新!,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5803932/

10-11 23:59