C# 如何向winform上的用户定义文本框添加工具提示

C# 如何向winform上的用户定义文本框添加工具提示,c#,winforms,C#,Winforms,我有一个uvSelfLoadingTextBox,表单上有多个实例。 我想在运行时加载带有\u值的工具提示 我试过了 public ucSelfLoadingTextBox() { Windows.Forms.ToolTip myToolTip; myToolTip.AutomaticDelay = 5000; myToolTip.AutoPopDelay = 50000; myToolTip.InitialDelay = 100; myToolTip.R

我有一个
uvSelfLoadingTextBox
,表单上有多个实例。 我想在运行时加载带有
\u值的工具提示

我试过了

public ucSelfLoadingTextBox()
{
    Windows.Forms.ToolTip myToolTip;
    myToolTip.AutomaticDelay = 5000;
    myToolTip.AutoPopDelay = 50000;
    myToolTip.InitialDelay = 100;
    myToolTip.ReshowDelay = 500;

    myToolTip.SetToolTip(this, _value);
在控件内部,但这不起作用

我尝试过使用拖到窗体上的工具提示

    ucSelfLoadingLogicTextBox uc = new ucSelfLoadingLogicTextBox();
    toolTipA.SetToolTip(uc,uc._value );
这是行不通的


正确的方法是什么?

windows窗体上的许多可见控件都具有工具提示属性。只需使用新创建的工具提示设置工具提示。您还可以向表单中添加工具提示。你试过这个吗

myToolTip.ShowAlways = true;

并尝试将此提示设置为按钮控件。这可能是对工具提示的一个很好的测试。

您忘记实例化
myToolTip
。您需要将其设置为
newtooltip()

另外,我认为在textbox的构造函数中指定工具提示不是一个好的做法。您可以在(需要覆盖的)中执行此操作

因此,您的代码可能会变成:

protected override void OnCreateControl()
{
    base.OnCreateControl();

    var myToolTip = new System.Windows.Forms.ToolTip
    {
        AutomaticDelay = 5000,
        AutoPopDelay = 50000,
        InitialDelay = 100,
        ReshowDelay = 500
    };

    myToolTip.SetToolTip(this, this.Text);
}

您是否遇到了某种异常情况?哎呀,这对该项工作正常。文本在设计时显示,但它只显示控件的旧值,例如Text=designtime,文本值被代码更改为Text=newvalue工具提示仍显示“designtime”。是否有方法使控件刷新我是否需要某种onChange事件?受保护的覆盖void OnTextChanged(EventArgs e)感谢wOlf,由于您的帮助,它现在工作得很好。