Подсказка не отображается, мигает при нажатии на элемент управления - PullRequest
0 голосов
/ 12 ноября 2009

У меня есть флажок, который отключен, который должен показывать всплывающую подсказку при наведении, но вместо этого ничего не происходит. После того, как флажок нажмет на всплывающую подсказку на мгновение, затем мигает очень быстро и выключается. Что может быть причиной этого? Подсказка также должна отображаться для каждого задействованного элемента управления, но показывает для некоторых, а не для других, хотя подсказка явно установлена ​​для всех элементов управления. Что может быть причиной такого поведения?

Вот обработчик события:

this.MouseHover += new EventHandler(OrderSummaryDetails_MouseHover);


void EventHandler_MouseHover(object sender, EventArgs e)
{
     if (someCondition)
     {
         this.mFormTips.Show("Please open order form to manually modify this order", this);
     }
}

Ответы [ 2 ]

1 голос
/ 12 ноября 2009

Я не могу быть уверен, но если вы используете WinForms, и у вас отключен флажок (как в не включен), то флажок не будет получать события. Это приведет к тому, что всплывающие подсказки не будут отображаться должным образом.

У меня была точно такая же проблема с кнопкой изображения, и в итоге мне пришлось создать серую шкалу изображения и заменить ее, когда я хотел, чтобы кнопка была "отключена". Мне пришлось добавить всплывающую подсказку к кнопке и изображению (два отдельных элемента пользовательского интерфейса) и заменить элементы пользовательского интерфейса.

0 голосов
/ 17 ноября 2009

Я добавил событие MouseMove и применил его ко всем элементам управления.

void OrderSummaryDetails_MouseMove(object sender, MouseEventArgs e)
{
      Control control = GetChildAtPoint(e.Location);
      if (control != null)
      {
          string toolTipString = mFormTips.GetToolTip(control);
          this.mFormTips.ShowAlways = true;
          // trigger the tooltip with no delay and some basic positioning just to give you an idea
          mFormTips.Show(toolTipString, control, control.Width / 2, control.Height / 2);
      }
}
...