Обзор
Свойство Form.ActiveControl возвращает активный элемент управления или задает активный элемент управления в форме. При
Свойство ActiveControl формы устанавливается на элемент управления в форме, фокус перемещается на элемент управления.
Метод Control.Select активизирует заданный элемент управления и устанавливает фокус на элемент управления.
Метод Control.Focus устанавливает фокус ввода на элементе управления. Элемент управления может получать фокус ввода, используя метод Control.Focus , если выполняются следующие условия:
- ControlStyles.Selectable бит стиля элемента управления имеет значение
Значение true. - Элемент управления, который будет получать фокус находится в другом элементе управления и все родительские элементы управления видимы и включены.
к началу статьи
Требования
Предполагается, что вы знакомы со следующими разделами:- Синтаксис Visual Basic корпорации Майкрософт
- Среда Microsoft Visual Studio .NET и Microsoft Visual Studio 2005
- Элементы управления Microsoft Visual Basic
Свойство Form.ActiveControl
Следующий пример описывает, как использовать свойство ActiveControl Form2 для установки фокуса на элемент управления TextBox без текста:- Запустите Visual Studio 2005 или Visual Studio .NET.
- В меню файл укажите на пункт
Создатьи выберите команду проект. - В области Типы проектоввыберите
Проекты Visual Basic.
Примечание. В Visual Studio 2005 выберите в списке Типы проектов Visual Basic . - В области Шаблонывыберите пункт
Приложение Windows, а затем нажмите кнопку ОК.
По умолчанию будет создана форма Form1. - Добавить
Элемент управления Button в форму Form1. - Щелкните правой кнопкой мыши кнопки Button1и нажмите кнопку
Свойства. - В диалоговом окне Свойства установите
Свойство Text , чтобы Установить фокус. - В меню проект выберите Добавить форму Windowsи нажмите кнопку Открыть.
По умолчанию создается Form2. - Добавьте три
Элементы управления TextBox Form2. - Добавьте три элемента управления Label на Form2.
Примечание. Поместите каждый элемент управления Label слева от элемента управления TextBox . - В диалоговом окне Свойства установите
Свойство Text метки Label1
Имя, значение свойства Text Label2 компании, а затем установите свойство Text Label3 на ContactNo. - В диалоговом окне Свойства удалите текст в свойстве Text TextBox1, удалите текст в свойстве Text TextBox2и удалите текст в свойстве Text TextBox3.
- Добавьте следующий код для
Создание обработчика событий Button1_Click в Form1:'Create an instance of Form2.Dim MyForm As New Form2()
'Set the Text in the TextBoxes on Form2.
MyForm.TextBox1.Text = "John"
MyForm.TextBox3.Text = "123456"
'Display the form.
MyForm.Show() - Добавьте следующий код в обработчик событий Form2_Load:
Dim i As IntegerFor i = 0 To 5
If Me.Controls(i).Name Is "TextBox1" Or Me.Controls(i).Name Is "TextBox2" Or Me.Controls(i).Name Is "TextBox3" Then
'Find the TextBox for which Text is not set.
If Me.Controls(i).Text = "" Then
'Set the focus on the control without any text.
Me.ActiveControl = Me.Controls(i)
End If
End If
Next - В меню Построение выберите команду Построить решение.
- В меню Отладка выберите команду
Для запуска. - Нажмите кнопку Установка фокуса.
Фокус установлен на элементе управления TextBox без текста.
Метод Control.Select
В следующем примере описывается, как найти элемент управления TextBox без текста на Form2 и описывается использование метода Control.Select для установки фокуса для элемента управления:- Замените следующий оператор в обработчике событий Form2_Loadс помощью следующей инструкции:
Me.ActiveControl = Me.Controls(i)
Me.Controls(i).Select()
- В меню Построение выберите команду Построить решение.
- В меню Отладка выберите команду
Для запуска. - Нажмите кнопку Установка фокуса.
Фокус установлен на элементе управления TextBox без текста.
Метод Control.Focus
Приведенный ниже описывается, как найти элемент управления TextBox без текста на Form2, описывается значение Trueсвойства Visible Form2 и затем описывается, как установить фокус на элемент управления с помощью метода фокус элемента управления:- Замените существующий код в обработчике событий Form2_Loadследующий код:
'Set the visible property of the form to true, 'and then set the focus to the control.
Me.Visible = True
Dim i As Integer
For i = 0 To 5
If Me.Controls(i).Name Is "TextBox1" Or Me.Controls(i).Name Is "TextBox2" Or Me.Controls(i).Name Is "TextBox3" Then
'Find the TextBox for which Text is not set.
If Me.Controls(i).Text = "" Then
'Set the focus on the control with no text.
Me.Controls(i).Focus()
End If
End If
Next - В меню Построение выберите команду Построить решение.
- В меню Отладка выберите команду
Для запуска. - Нажмите кнопку Установка фокуса.
Фокус установлен на элементе управления TextBox без текста.
Разрешение вопросов
- Удалите любой текст в элементах управления TextBox на Form2 перед запуском приложения.
- Чтобы установить фокус на элемент управления формы свойства Visible присвоено значение True,можно использовать метод Control.Focus в событии Load формы.