在文本框条目上显示工具提示

本文关键字:显示 工具提示 文本 | 更新日期: 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))。。。