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,由于您的帮助,它现在工作得很好。