Невозможно сбросить/изменить порядок вкладок

У меня есть форма, и я пытаюсь установить фокус на текстовое поле «Отправка №» без необходимости делать это программно.

введите здесь описание изображения

Я использую View- > Tab Order, но не могу установить для правой панели разделенного контейнера значение 0. Visual Studio позволяет установить значение 0 только для левой панели разделенного контейнера.

введите здесь описание изображения

Я попытался в свойствах установить порядок табуляции на 0 для текстового поля «Отгрузка №» и изменить его на более высокий номер для всех кнопок «Печать», «Сравнить…», но все же «Отгрузка №» не получает фокуса.

Почему я не могу установить порядок табуляции на 0 для текстового поля Отгрузка №, используя View->Tab Order?


person ehh    schedule 20.01.2016    source источник
comment
Я +1, потому что вы используете comic sans ms.   -  person Thomas Ayoub    schedule 20.01.2016
comment
Нет, я не. Это картина.   -  person ehh    schedule 20.01.2016
comment
Вероятно, здесь есть какие-то скрытые (или позади) панели, которые портят настройки табулятора.   -  person Steve    schedule 20.01.2016
comment
Почему бы не использовать textboxShipment.Focus()?   -  person René Vogt    schedule 20.01.2016
comment
Если вы используете дизайнер (а не часть окна свойств), вам, вероятно, придется щелкнуть по самой разделенной панели, а не по одному из ее дочерних элементов. Возможно, вам придется временно открепить одного из дочерних элементов, чтобы вы могли щелкнуть по нему.   -  person lc.    schedule 20.01.2016
comment
@ Рене Фогт, я мог бы это сделать, но я хотел бы понять, в чем я ошибаюсь, и извлечь из этого уроки. Я считаю, что есть объяснение, почему это невозможно, и, возможно, другое решение, кроме установки фокуса.   -  person ehh    schedule 21.01.2016


Ответы (2)


Я использую Visual Studio 2015 Express. Попробуйте отредактировать код XAML, поставив TabIndex="#"', где # — это номер нужного вам индекса.

Быстрый пример:

MainWindow.xaml
....
TextBox x:Name="SomeTextBox" TabIndex="0"
TextBox x:Name="AnotherTextBox" TabIndex="1"

Расставил бы эти текстовые поля по порядку от 0 до 1 и так далее.

person Adam Howard    schedule 09.01.2018

Я не думаю, что вы можете установить свойство TabIndex панелей SplitContainer через окно свойств, вы должны сделать это с помощью кода

splitContainer1.Panel1.TabIndex = 1;
splitContainer1.Panel2.TabIndex = 0;

Сначала фокус будет направлен на правую (или нижнюю) панель, а затем фокус должен получить элемент управления с самым низким TabIndex на этой панели.

Вы также можете использовать

SplitContainer.ActiveControl = controlName;

В любом случае, я думаю, вам придется сделать это в коде.

person cgt_mky    schedule 20.01.2016
comment
Спасибо, но Tabindex не является собственностью splitContainer1.Panel1. Нет возможности сделать это с помощью кода, как вы упомянули - person ehh; 21.01.2016
comment
msdn. microsoft.com/en-us/library/ Для справки, я считаю, что этот тег BrowsableAttribute является причиной того, что вы не видите свойство в окне свойств. - person cgt_mky; 21.01.2016