Проблемы с обновлением ToolstripDropdownButton после того, как окно теряет фокус
Позвольте мне начать с простого примера, чтобы воспроизвести мою проблему:
- Создать проект WinForms.
- Оставьте ToolStrip на нем.
- Сделайте в нем ToolstripDropdownButton (без дочерних элементов).
Добавьте обработчик события click к кнопке примерно так:
MessageBox.Show("text", "Caption");
(смысл в том, чтобы основная форма потеряла фокус).
Чтобы сделать проблему более очевидной, давайте сделаем несколько ненужных дополнений:
- Установите RenderMode нашего ToolStip равным ManagerRenderMode.
- Установите для Autosize значение false и увеличьте его.
И этого должно быть достаточно, чтобы воспроизвести это. Запустите приложение и нажмите кнопку. Вы получите всплывающее окно. Закройте всплывающее окно и вуаля... теперь кнопка выглядит так, как будто кто-то держит ее нажатой.
Любые идеи о том, как сбросить его в его состояние по умолчанию?
Я пытался вызвать кнопки ResetBackColor, Refresh ... также как ToolStrips. Кажется, не работает. Может я что-то упустил?
1 ответ
MessageBox или модальная форма будут мешать этому. В раскрывающемся меню ожидаются элементы детского меню.
Пример работы вокруг:
private void toolStripDropDownButton1_Click(object sender, EventArgs e) {
this.BeginInvoke(new Action(() => MessageBox.Show("Help")));
}