在文本框条目上显示工具提示
本文关键字:显示 工具提示 文本 | 更新日期: 2023-09-27 17:57:28
我有一个textbox
,它要求以某种方式输入数据。我已经实现了一些单元格验证技术来在数据输入后检查数据,但我想在用户输入数据之前向他们提供一些信息。
为此,我想在用户进入工具箱时弹出的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
时执行,但是tooltip
仅在鼠标悬停在textbox
上时出现。有人对此有什么想法吗?我认为tt.ShowAlways = true
可能会起作用,但显然不行。
勾入文本框。输入事件并使用以下代码:
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"),当工具提示悬停在上面时会显示出来,或者实现你自己的工具提示。
如果你把日期分成几部分(分别为日、月、年),它也可能起作用。这将使您能够更好地控制用户可以输入的内容——月份可以成为下拉框/组合框,因此它始终是正确的格式。
您还可以显示类似以下的工具提示:
ToolTip t = new ToolTip();
t.Show("Hello World", textBox1, 1000);
试试这个。(基于上面的回答)为要具有工具提示的所有控件添加事件处理程序。将所有事件处理程序指向同一方法。然后构造这样的处理方法
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);
}
}
您应该使用if ( o.Name == label1.Name)
而不是if ( o.Name == "label1")
,因为如果重命名label1,这一行也会被修改。
更多:if(o.equals(label1))
。。。