Как скрыть подсказки - PullRequest
1 голос
/ 26 июля 2010

У меня дерево с некоторыми узлами.У меня также есть панель.Я взял несколько форм usercontrol, и я буду загружать эти usercontrols, когда соответствующий узел выбран из дочернего колпака.Теперь мне нужно несколько проверок, например, если я оставлю текстовое поле пустым, у меня будут отображаться подсказки для пользователя.Предположим, если я нажму на первый узел, у меня будет загружен пользовательский элемент управления.Без указания каких-либо значений, если я нажму «ОК», у меня будет несколько подсказок: alt text http://i31.tinypic.com/2iuvyo1.jpg

Теперь, если я выберу второй узел из дерева, все еще отображаются всплывающие подсказки, я хотел бы скрыть их

альтернативный текст http://i29.tinypic.com/10nfc0o.jpg

Любая помощь, пожалуйста


мой код для всплывающих подсказок об ошибках приведен ниже

   public class TestClass
    {
        public void RequiredText(TextBox txtTemp, ToolTip newtoolTip)
        {

            if (txtTemp.Text != string.Empty)
            {
                txtTemp.BackColor = System.Drawing.Color.White;
                newtoolTip.Hide(txtTemp);

            }
            else
            {
                txtTemp.BackColor = System.Drawing.Color.Tomato;
                newtoolTip.Show("Required", txtTemp);
            }
        }
    }

Но это былосделано в форме контроля использования.

Ответы [ 3 ]

1 голос
/ 26 июля 2010

Я еще не освоил искусство обратного проектирования кода со скриншота.Я предполагаю, что вы не удаляете предыдущий пользовательский элемент управления при выборе нового.Позволяет подсказке оставаться видимым.Используйте такой код:

    private UserControl currentView;

    public void SelectView(UserControl view) {
        if (currentView == view) return;
        if (currentView != null) currentView.Dispose();
        if (view != null) this.Controls.Add(view);
        currentView = view;
    }

И вызовите SelectView () из обработчика событий TreeSelect AfterSelect.

0 голосов
/ 27 июля 2010

Получил ответ только что написанное событие Usrcntrl_Leave для каждого пользовательского элемента управления как

    private void usrcntrlPPD_Leave(object sender, EventArgs e)
    {
        this.Dispose();
    }

Это решило мою проблему:)

0 голосов
/ 26 июля 2010

Вы пробовали метод Hide?

http://dotnetperls.com/tooltip

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...