У меня есть одна форма с четырьмя dockPanelsКак перезагрузить внимание на формы контроля (dockPanels)
- dock_1
- dock_2
- dock_3
- dock_4
я хочу сосредоточиться на специфический dockPanel, изменив их tabIndex. Для dockPanel, который должен быть сфокусирован, я устанавливаю tabIndex на 0, остальные индексы док-станции меня увеличивают.
Мне нужно управлять им внутри метода, чтобы иметь возможность запускать изменения, когда мне это нужно. Я могу установить его внутри конструктора, и во время формы первый фокус инициализации может быть установлен правильно, но это не то, что мне нужно.
Проблема в том, что я не могу заставить фокус фокусироваться на форме, поэтому, когда я изменяю tabIndexes, ничего не произошло.
Вы знаете, как вызвать:
System.Windows.Forms.dll System.Windows.Forms.ContainerControl.UpdateFocusedControl()
Он должен перезарядить фокус в форме, но я не способный вызвать его. Я пробовал решения, похожие на: myForm.Select(), но без каких-либо результатов.
Благодаря
Я немного не понимаю, в чем заключается ваша цель. Вы переупорядочиваете TabIndex, а затем пытаетесь сосредоточиться на dockPanel с 'TabIndex == 0'? – jaredbaszler
Да. Когда вы устанавливаете tabIndex = 0, например. dock_1 Внутри конструктора фокус будет на dock_1. Но он работает только внутри конструктора и рисования первой формы. После этого я не могу перерисовать фокус, когда, например, я установил tabIndex = 0 для dock_3 и tabIndex для rest dockPanel I увеличиваю. После этого изменения фокус должен быть на dock3. Это как работает. Но я не знаю Как перефокусировать вручную/перерисовать форму – jacek