Как завершить отображение всплывающей подсказки кнопок - PullRequest
0 голосов
/ 26 января 2012

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

Мой вопрос: как я могу получить ссылку наКнопки подсказки объекта, чтобы я мог сделать его невидимым?Я предполагаю, что это будет выглядеть так:

ToolTip someTT = Button.ToolTip; // This only gets or set the tool tip text.
someTT.Active = false;
someTT.Dispose(); // As a last resort.

Извините, ребята, я признаю, что я отвратительный человек для этого.

Редактировать: Кнопка изComponantOne RibbonButton -типа как часть Студии для WinForms.

Ответы [ 3 ]

2 голосов
/ 26 января 2012

Обычно при работе с ToolTip в методе Form.InitializeComponent () можно найти следующий код:

this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.button1 = new System.Windows.Forms.Button();
//...
this.toolTip1.SetToolTip(this.button1, "Tooltip for button1");

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

this.toolTip1.SetToolTip(this.button1, null);

Вы также можете отключить кнопку, когда фоновый поток был запущен. Это также позволяет избежать ненужных всплывающих подсказок над этой кнопкой:

void button1_Click(object sender, EventArgs e) {
    toolTip1.Hide(button1);
    button1.Enabled = false;
    //start the background thread here
}
1 голос
/ 26 января 2012

Вы должны работать с элементом управления ToolTip , который вы добавили в свой проект. Что-то вроде ToolTip.Active может работать.

Сверху ссылка:

С помощью свойства Active вы можете включить или отключить отображение Текст всплывающей подсказки для всех элементов управления, текст которых указан конкретный компонент всплывающей подсказки. Хотя более одного компонента всплывающей подсказки можно создать и назначить форме, установив для свойства Active значение false влияет только на текущую подсказку.

0 голосов
/ 26 января 2012

Если поток пользовательского интерфейса выполняет работу, то не имеет значения, если вы найдете способ скрыть подсказку, он все равно не будет выполняться, пока поток пользовательского интерфейса не будет снова освобожден.

Вашрешение - это то, что вы всегда знали, переместите обработку без пользовательского интерфейса в поток без пользовательского интерфейса.

...