我正在尝试以编程方式为表单中的UserControl上的标签(在运行时添加)设置工具提示。用于触发代码的按钮位于用户控件本身上。问题是,当我单击按钮时,未分配工具提示。但是,如果我在父表单上使用基本相同的代码并将其放在父表单上的按钮后面,我可以将工具提示分配给父表单上的标签。此外,如果我在运行之前将标签添加到用户控件也可以。
以下代码来自位于主窗体上的用户控件上的按钮。
private void button1_Click(object sender, EventArgs e)
{
Label lblTest = new Label();
lblTest.Text = "Test";
ToolTip tt = new ToolTip();
tt.SetToolTip(lblTest, "ToolTipTest");
this.Controls.Add(lblTest);
lblTest.Location = new Point(10, 10);
}
非常感谢任何帮助。
答案 0 :(得分:2)
您可以尝试手动显示工具提示。使用这样的代码:
ToolTip tt = null;
private void button1_Click(object sender, EventArgs e)
{
Label lblTest = new Label();
lblTest.Text = "Test";
tt = new ToolTip();
this.Controls.Add(lblTest);
lblTest.MouseHover += new EventHandler(label_Hover);
lblTest.Location = new Point(10, 10);
}
private void label_Hover(object sender, EventArgs e)
{
tt.Show((Label)sender, "Tooltip");
}
粗体代码是我的补充和/或修改。
答案 1 :(得分:0)
最有可能的是,Click事件后ToolTip对象超出了范围。您可以尝试在Click事件之外声明它:
ToolTip tt = new ToolTip();
private void button1_Click(object sender, EventArgs e)
{
// and so on...