更改工具提示控件

时间:2013-02-06 14:55:44

标签: c# .net textbox tooltip

我有一系列textboxes我希望将tooltiptooltip相关联。当用户点击黑色textbox时会显示此textbox,然后当他们开始输入或离开tooltip时消失。 textbox应该放在ToolTip.Show的正上方,这就是为什么我使用ToolTip.SetTooltip方法而不是textbox方法(它让我控制放置)。

到目前为止,对于每个tt = new ToolTip(); String message = "some message"; //different for each textbox private void textbox1_Enter(object sender, EventArgs e) { if (textbox1.Text == String.Empty) { tt.Show(message, textbox1, new Point(0, -2 * textbox1.Height)); } } private void textbox1_Leave(object sender, EventArgs e) { tt.Hide(textbox1); } private void textbox1_TextChanged(object sender, EventArgs e) { tt.Hide(textbox1); } ,我有3种方法; Enter,Leave和TextChanged:

textboxes

现在考虑两个textbox1。点击tooltip会在预期的位置按预期触发textbox1,然后退出textbox2会使其消失。在textbox1上尝试同样的事情也有效。现在,如果我再次点击tooltip,则textbox2会显示正确的消息,但展示位置与我点击tooltip的位置相同。不仅如此,textbox2的形状与textbox1的形状相同,这意味着我的消息会被截断。 (textbox2的消息比{{1}}的消息长。有谁知道可能导致这种情况的原因?

1 个答案:

答案 0 :(得分:1)

只有在IsBalloon属性为真时才会发生这种情况。不幸的是,已知的bug。

试试这样:

private void textbox1_Enter(object sender, EventArgs e) {
  if (textbox1.Text == String.Empty) {
    tt.Show(string.Empty, textbox1, 0);
    tt.Show(message, textbox1, new Point(0, -2 * textbox1.Height));
  }
}