2016-12-10 4 views
1

Я хочу расширить BindingNavigator, поэтому я могу добавить дополнительные функции. Одна из вещей, которую я хочу сделать, это добавить ToolStripSplitButton, который будет авторизовать ячейки в DataGridView. Я смог добавить кнопку, но когда я бросаю элемент управления на форму, моя кнопка находится в первой позиции. Я хотел бы добавить эту кнопку после кнопки «Удалить». Как я могу это сделать?Расширение BindingNavigator

Вот что управление выглядит как при падении на форму во время проектирования: nav

Вот код:

public class DataGridToolStrip : BindingNavigator 
{ 

    private ToolStripSplitButton AutoSizeButton; 
    private ToolStripMenuItem mnuAllCells; 
    private ToolStripMenuItem mnuAllCellsExceptHeader; 
    private ToolStripMenuItem mnuColumnHeader; 
    private ToolStripMenuItem mnuDisplayedCells; 
    private ToolStripMenuItem mnuDisplayedCellsExceptHeader; 

    public DataGridToolStrip() : base(false) 
    { 
     //this.Items.Clear(); 
     //this.AddStandardItems(); 

     this.mnuAllCells = new ToolStripMenuItem(); 
     this.mnuAllCellsExceptHeader = new ToolStripMenuItem(); 
     this.mnuColumnHeader = new ToolStripMenuItem(); 
     this.mnuDisplayedCells = new ToolStripMenuItem(); 
     this.mnuDisplayedCellsExceptHeader = new ToolStripMenuItem(); 
     this.AutoSizeButton = new ToolStripSplitButton(); 

     this.AutoSizeButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; 
     this.AutoSizeButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 
     this.mnuAllCells, 
     this.mnuAllCellsExceptHeader, 
     this.mnuColumnHeader, 
     this.mnuDisplayedCells, 
     this.mnuDisplayedCellsExceptHeader}); 

     this.AutoSizeButton.Name = "AutoSizeButton"; 
     this.AutoSizeButton.Size = new System.Drawing.Size(72, 22); 
     this.AutoSizeButton.Text = "Auto Size"; 



     this.Items.Add(AutoSizeButton); 
    } 
} 
+0

Вы пытались добавить свой AutoSizeButton в качестве l ast в массив элементов управления, переданных в DropDownItems.AddRange? – hypnos

ответ

1

Вы можете переопределить AddStandardItems метод из BindingNavigator и и добавить дополнительные элементы после звонка base.AddStandardItems():

public class DataGridToolStrip : BindingNavigator 
{ 
    public override void AddStandardItems() 
    { 
     base.AddStandardItems(); 
     // Add addtional items here 
    } 
} 
+0

Вот и все! Никогда не думал о том, чтобы переопределить метод – Jeff

Смежные вопросы