一、ToolTip信息提示框
C#中提供了信息提示框,这有很多用处,可以提示控件或者用户自定义的属性信息,而且可以自动弹出或者用户指定弹出,也可以动画效果弹出。
但是这个控件设计和实现有很多不好的地方,使用的时候需要一些技巧。
二、使用方法
(1)鼠标移动到控件或指定的位置自动显示
ToolTip.SetToolTip 方法 ,注意相关参数的设置。
(2)动画效果
参数:AutoPopDelay InitialDelay ReshowDelay
例如:
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
(3)提示图片设置
ToolTipIcon属性
Error 错误图标
Info 信息图标。
None 不是标准图标。
Warning 警告图标。
(4)气泡样式
ToolTip.IsBalloon 属性 设置为True
(5)自定义位置和触发事件显示
ToolTip.Show 方法,注意相关参数的设置。
例如:m_ToolTip.Show(pStringBuilder.ToString(),
m_HookHelperJP.FormObjects.Win32Window,e.x + r.Left, e.y + r.Top);
三、使用技巧
(1)ToolTip.Show时显示不能隐藏问题
可做以下处理:在再次触发Show前进行Hide操作
(2)m_ToolTip信息不能及时更新问题
这是因为其内存清理存在问题,处理方法:在显示前清楚内存,重新实例化。
例如:
m_ToolTip.Dispose();
m_ToolTip = new ToolTip();
m_ToolTip.ToolTipIcon = ToolTipIcon.Info;
//m_ToolTip.IsBalloon = true;
m_ToolTip.ShowAlways = true;
m_ToolTip.ToolTipTitle = sName;
m_ToolTip.Show(pStringBuilder.ToString(),
m_HookHelperJP.FormObjects.Win32Window, e.x + r.Left, e.y + r.Top);
(3)固定宽度设置
ToolTip没有直接提供Width属性,找了很久可用以下方法设置:
在显示前ToolTip.Popup 事件
中通过参数PopupEventArgs.Size进行设置。但是这只能覆盖多出的信息。这种处理不合理。
建议另外一种方法:设置每一行固定字符,多出的则换行显示