【问题标题】:Show Tooltip at specific control position via code通过代码在特定控制位置显示工具提示
【发布时间】:2014-01-24 16:08:33
【问题描述】:

我有一个文本框,当用户输入错误时,它应该显示带有说明的工具提示。

但我无法将工具提示放在正确的位置。

我的文本框位于 groupBox 和 TabControl 内。我试过这个:

Point locationOnForm = new Point(this.Left + tabCon.Left + gbDocs.Left + tbKey.Left, this.Top + tabCon.Top + gbDocs.Top + tbKey.Top);

tooltipError.Show("Test", this, locationOnForm , 3000);

但位置总是在附近,永远不会在正确的位置。

【问题讨论】:

  • 你想要它在哪里?在 TextBox 的某些部分,例如右下角?
  • 在左下角之后。或该点附近的任何地方。

标签: c# winforms location tooltip


【解决方案1】:

您可以很容易地获得绝对定位。此示例将 ToolTip 放在 TextBox 的右下角。

Point pt = new Point(0, 0);
pt.Offset(textBox1.Width - 1, textBox1.Height - 1);
toolTipError.Show("Test", textBox1, pt, 3000);

请记住,您提供给工具提示的 Point 与您提供的 Control 相关,在本例中为 textBox1

【讨论】:

    【解决方案2】:

    这会将您的工具提示放置在文本框的右侧

    tooltipError.Show("TT Text", myGroupBox, textBox1.Left + textBox1.Width + 5, textBox1.Top, 3000);
    

    注意 - 您需要将 GroupBox 设置为窗口 - 您的工具提示必须显示在与文本框相同的坐标中。效果很好。

    在这个注释上,为什么不使用专门为此设计的ErrorProvider

    【讨论】:

    • 嗯,我去看看ErrorProvider。谢谢你的帮助。我的错误是this 代替了 groupBox。 :)
    • 没问题。此外,如果有时您确实需要到达验证器 - 您可以自己编写。使用标签和计时器,做一个用户控件,你可以在上面画各种各样的东西,让它闪烁等等。而且也比较容易
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    相关资源
    最近更新 更多