Класс BindingNavigator имеет специальный конструктор BindingNavigatorDesigner
, производный от ToolStripDesigner
. Конструктор вызывает метод publi c virtual AddStandardItems () , который затем вызывается конструктором форм, когда BindingNavigator добавляется в форму.
Чтобы кнопки работали, переопределите это в настраиваемом классе и добавьте сюда новые кнопки. Теперь ваши ToolStripButtons сериализованы в конструкторе форм, и если вы дважды щелкните одну из своих настраиваемых кнопок, в форму добавится обработчик Click
.
Примечания, которые вы можете найти в. Net Исходный код :
Переопределите этот метод в производных классах, чтобы определить дополнительные или альтернативные стандартные элементы. Чтобы обеспечить оптимальную поддержку производного класса во время разработки, убедитесь, что каждый элемент имеет значимое значение в свойстве Name. Во время разработки это будет использоваться для создания уникального имени для соответствующей переменной-члена. Затем свойство Name элемента будет обновлено, чтобы оно соответствовало имени, присвоенному переменной-члену.
BindingNavigator Custom Как видите, теперь кнопки полностью функциональны
Я предлагаю вам изменить свой пользовательский BindingNavigator следующим образом:
► Не называйте свой пользовательский элемент управления BindingNavigator
public class BindingNavigatorEx : BindingNavigator
{
private ToolStripItem btnEdit;
private ToolStripItem btnExcelExport;
public BindingNavigatorEx() { }
public override void AddStandardItems()
{
base.AddStandardItems();
this.Items.Add(new ToolStripSeparator());
btnEdit = new ToolStripButton() {
Image = Properties.Resources.Edit___16x16,
Name = "bindingNavigatorButtonEdit",
DisplayStyle = ToolStripItemDisplayStyle.Image
};
this.Items.Add(btnEdit);
btnExcelExport = new ToolStripButton() {
Image = Properties.Resources.Excel___16x16,
Name = "bindingNavigatorButtonExcelExport",
DisplayStyle = ToolStripItemDisplayStyle.Image
};
this.Items.Add(btnExcelExport);
}
}