У меня есть диалоговое окно с элементами управления, которые выскочили, и когда элемент управления запущен над элементами управления, отображается всплывающая подсказка. Однако, если я закрою окно, то повторно отобразите его, никакие всплывающие подсказки не будут работать. Вот часть моего кода. Я инициализирую tooltipOn, когда форма загружена в null. Я сделал трассировку и tooltip1.Show() вызывает вызов во второй раз, когда он просто не отображается. Любая идея почему?Подсказки не будут отображаться во второй раз.
private void Panel1_MouseMove(object sender, MouseEventArgs e)
{
Control ctrl = null;
if (sender == Panel1)
ctrl = ((Control)sender).GetChildAtPoint(e.Location);
else
ctrl = (Control)sender;
if (ctrl != null)
{
if (tooltipOn != ctrl)
{
toolTip1.Show(toolTip1.GetToolTip(ctrl), ctrl, ctrl.Width/2, ctrl.Height/2);
tooltipOn = ctrl;
}
}
else
{
toolTip1.Hide(this);
tooltipOn = null;
}
}
Это работало абсолютно! Я все еще не уверен, что происходит. Не могли бы вы объяснить мне, почему код работал в первый раз, когда моя форма отображается, но не вторая? – novacara
На самом деле вы знаете что? Это работает, только если я не обработал элемент управления при первом отображении формы. – novacara
Я думаю, что это связано с тем, что вы пытаетесь использовать ту же подсказку для нескольких элементов управления. Обычно каждый элемент управления получает свою собственную подсказку. Однако, как вы это делаете, вы создаете только одну всплывающую подсказку (из того, что я могу сказать), а затем просто перемещайте ее, в которой когда-либо управляют мышью. – Joseph