Практическое руководство. Добавление кнопок загрузки, сохранения и отмены в элемент управления BindingNavigator в формах Windows Forms
Элемент управления BindingNavigator — это специальный элемент управления ToolStrip, предназначенный для навигации и управления элементами управления в форме, привязанной к данным.
Так как это элемент управления ToolStrip, компонент BindingNavigator можно легко изменить, чтобы включить дополнительные или альтернативные команды для пользователя.
В следующей процедуре элемент управления TextBox привязан к данным, а элемент управления ToolStrip, добавленный в форму, изменяется для включения кнопок загрузки, сохранения и отмены.
Добавление кнопок загрузки, сохранения и отмены в компонент BindingNavigator
В Visual Studio добавьте элемент управления TextBox в форму.
Привяжите его к объекту BindingSource, который привязан к источнику данных. В этом примере BindingSource привязан к базе данных.
После создания набора данных и адаптера таблицы перетащите элемент управления BindingNavigator в форму.
Задайте для свойства BindingNavigator элемента управления BindingSource значение BindingSource формы, привязанной к элементам управления.
Выберите элемент управления BindingNavigator.
Щелкните глиф действий конструктора (), чтобы откроется диалоговое окно "Задачи BindingNavigator" и выберите "Изменить элементы".
Откроется редактор коллекции элементов.
В редакторе коллекций элементов выполните следующие действия:
Добавьте ToolStripSeparator и три элемента ToolStripButton, выбрав соответствующий тип ToolStripItem и нажав кнопку Добавить.
Задайте для свойства Name кнопок значения LoadButton, SaveButton и CancelButton соответственно.
Задайте для свойства Text кнопок значения Load (Загрузка), Save (Сохранить) и Cancel (Отмена).
Присвойте свойству DisplayStyle каждой кнопки значение Text. Кроме того, можно задать для этого свойства значение Image или ImageAndText и задать изображение, которое будет отображаться в свойстве Image.
Чтобы закрыть диалоговое окно, нажмите кнопку ОК . Кнопки добавляются в ToolStrip.
Щелкните в форме правой кнопкой мыши и выберите Просмотреть код.
В редакторе кода найдите строку кода, которая загружает данные в адаптер таблицы. Этот код был создан при настройке привязки данных на шаге 2. Код должен быть аналогичен следующему:
TableAdapterName.Fill(DataSetName.TableName)
. Скорее всего, это будет в событии Load формы.Создайте обработчик событий для Click события загрузкиToolStripButtonранее, и переместите этот код загрузки данных в него.
Код должен выглядеть примерно следующим образом:
Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadButton.Click TableAdapterName.Fill(DataSetName.TableName) End Sub
private void LoadButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Fill(DataSetName.TableName); }
Создайте обработчик событий для события Click элемента управления ToolStripButton, созданного ранее, и напишите код для обновления данных в таблице, к которой привязан элемент управления.
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click TableAdapterName.Update(DataSetName.TableName) End Sub
private void SaveButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Update(DataSetName.TableName); }
Примечание.
В некоторых случаях у компонента BindingNavigator уже есть кнопка Save, но конструктор Windows Forms не создавал код. В этом случае можно поместить предыдущий код в обработчик событий Click для этой кнопки, а не создавать совершенно новую кнопку в ToolStrip. Однако кнопка отключена по умолчанию, поэтому необходимо задать для свойства Enabled кнопки значение
true
, чтобы она правильно работала.Создайте обработчик событий для события отменыClick, созданного ранее, и напишите код, ToolStripButton чтобы отменить любые изменения в отображаемой записи данных.
Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click BindingSourceName.CancelEdit() End Sub
private void CancelButton_Click(System.Object sender, System.EventArgs e) { BindingSourceName.CancelEdit(); }
Примечание.
Метод CancelEdit ограничен строкой данных. Сохраните все изменения, внесенные при просмотре этой отдельной записи, прежде чем переходить к следующей записи.
См. также
.NET Desktop feedback