Как сосредоточиться на ToolStripTextBox (один из элементов в коллекции ToolStripDropDownButton.DropDownItems), когда открывается раскрывающийся список - PullRequest
0 голосов
/ 18 октября 2018

Я создаю DropDownItems для ToolStripDropDownButton программным способом.Первое поле всегда ToolStripTextBox (в которое пользователи могут вводить, чтобы отфильтровать следующие элементы).Я хочу, чтобы ToolStripTextBox имел фокус, как только раскрывающийся список открывается, чтобы пользователь мог:

  1. Нажмите на ToolStripDropDownButton
  2. Начните вводить (для фильтрации элементов)

Однако, когда я пытаюсь сосредоточиться на ToolStripTextBox (в обработчике события DropDownOpened):

Dim v As ToolStripTextBox = DirectCast(tsbForms.DropDownItems(0), ToolStripTextBox)
Me.ActiveControl = v.Control

Я получаю исключение:

System.ArgumentException: 'Invisible or disabled control cannot be activated'

Вот снимок экранараскрывающегося списка, чтобы вы могли видеть, о чем я говорю:

enter image description here

В настоящее время текстовое поле вверху не имеет фокуса, и вы должныщелкните по нему, прежде чем вы сможете начать вводить фильтр.

К вашему сведению, я пытался проверить видимость ToolStripTextBox перед установкой ActiveControl, и в этом случае значение True.Я попытался выполнить операцию несколько других событий и получил тот же результат.

1 Ответ

0 голосов
/ 18 октября 2018

Просто настройка фокуса работала для меня:

Dim v As ToolStripTextBox = DirectCast(tsbForms.DropDownItems(0), ToolStripTextBox)
v.Focus()

Я использовал событие DropDownOpened родительского ToolStripDropDownButton.

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