在文本框条目上显示工具提示
我有一个textbox
,需要以某种方式输入数据。 我已经实现了一些单元validation技术来检查输入后的数据,但我想在输入数据之前向用户提供一些信息。
为此,我想在用户进入工具箱时弹出的textbox
添加tooltip
,然后在他们开始输入时退出。
例如,我有以下代码:
private void YearEdit_Enter(object sender, EventArgs e) { ToolTip tt = new ToolTip(); tt.IsBalloon = true; tt.InitialDelay = 0; tt.ShowAlways = true; tt.SetToolTip(YearEdit, "Enter 4 digit year."); }
这在用户输入textbox
时执行,但只有当鼠标hover在textbox
时才会显示tooltip
。 有没有人有任何想法解决这个问题? 我想也许tt.ShowAlways = true
可能tt.ShowAlways = true
,但显然不行。
挂钩到textbox.enter事件并使用以下代码:
private void textBox1_Enter(object sender, EventArgs e) { TextBox TB = (TextBox)sender; int VisibleTime = 1000; //in milliseconds ToolTip tt = new ToolTip(); tt.Show("Test ToolTip",TB,0,0,VisibleTime); }
使用X / Y值进行游戏以将其移动到您想要的位置。 可见时间是它消失多久。
仅当鼠标仍处于设计状态时才会显示工具提示。
您可以尝试将InitialDelay
设置为0:
tt.InitialDelay = 0;
但这仍然需要鼠标暂时静止。
然而,还有其他方法。 显示所需输入的常用方法是在文本框中使用水印(淡化文本),该水印显示用户开始键入之前所需的格式。
如果你真的想要一个工具提示,那么你可以添加一个信息图标(通常是“i”),它会在它hover时显示工具提示,或者实现你自己的工具提示。
如果您将日期分成几部分(单独的日,月,年),它也可能有效。 这将允许您更好地控制用户可以输入的内容 – 月份可以成为下拉/combobox,因此它始终是正确的格式。
你可以显示一个工具提示,如下所示:
ToolTip t = new ToolTip(); t.Show("Hello World", textBox1, 1000);
试试这个。 (基于上面的答案)为您想拥有ToolTip的所有控件添加事件处理程序。 将所有事件处理程序指向同一方法。 然后构建你这样的处理方法
private void procToolTips(object sender, EventArgs e) { ToolTip tt = new ToolTip(); Control o = (Control)sender; if ( o.Name == "label1") { tt.Show("Lorem ipsum dolor sit ame", o, 1000); } }