如何在textBox旁边显示tooltil?

时间:2017-11-11 17:21:58

标签: c# .net visual-studio

我有一个带有工具提示的TextBox。

我需要在textBox旁边显示工具提示但是如何?

if (this.txtBoxName.Text == "")

{
    ToolTip tip = new ToolTip();
    tip.IsBalloon = false;
    tip.ToolTipTitle = "";
    tip.InitialDelay = 0;
    tip.BackColor = Color.Aqua;
    this.txtBoxName.Focus();
    Point point = new Point(750, 560);
    tip.Show("Please Enter UserName", this.txtBoxName);
}

2 个答案:

答案 0 :(得分:1)

试试这个:

if (this.txtBoxName.Text == null || this.txtBoxName.Text == "")
{
    ToolTip tip = new ToolTip();
    tip.IsBalloon = false;
    tip.ToolTipTitle = "";
    tip.InitialDelay = 0;
    tip.BackColor = Color.Aqua;
    this.txtBoxName.Focus();
    Point point = new Point(txtBoxName.Location.X - 50, txtBoxName.Location.Y - 50); // for example 50px change
    tip.Show("Please Enter UserName", this.txtBoxName, point, 2000); // set 2000ms to auto close TooTip
}

我使用了这个Show函数overLoad,请参阅更多相关信息:

public void Show(string text, IWin32Window window, Point point, int duration);

  

<强>摘要:   设置与指定控件关联的工具提示文本,然后显示&gt;   在指定的相对位置指定持续时间的工具提示。

     

<强>参数

     

文字:   包含新工具提示文本的System.String。

     

<强>窗口:   System.Windows.Forms.Control显示工具提示。

     

<强>点:       一个System.Drawing.Point,包含相对于的偏移量(以像素为单位)   相关控制窗口的左上角,显示工具提示。

     

<强>持续时间:   一个System.Int32,包含显示的持续时间(以毫秒为单位)           工具提示。

     

<强>例外

     

System.ArgumentNullException:   window参数为null。

     

System.ArgumentOutOfRangeException:   持续时间小于或等于0.

答案 1 :(得分:1)

您还可以为文本框定义模板

<TextBox.Template>
    <ControlTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{TemplateBinding ToolTip}" />
            <TextBox Text="{TemplateBinding TextBox.Text}"></TextBox>
        </StackPanel>
    </ControlTemplate>
</TextBox.Template>