zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Dev BarManager用法

用法 Dev
2023-09-14 09:02:10 时间
最近使用BarManager时候,发现一个问题就是在一开始把BarManager控件拖到窗体上的时候,控件上会有Add按钮,如下图: 此时,新增按钮或者其余类型的控件,方便无比。但有时候,当你新增完各个BarItem(Bar上的各个小控件,比如:BarButtonItem、BarCheckItem等等)后,再过一段时间,突然又有需求,要新增BarItem,发现Add按钮木有了,那应该

最近使用BarManager时候,发现一个问题就是在一开始把BarManager控件拖到窗体上的时候,控件上会有Add按钮,如下图:


此时,新增按钮或者其余类型的控件,方便无比。但有时候,当你新增完各个BarItem(Bar上的各个小控件,比如:BarButtonItem、BarCheckItem等等)后,再过一段时间,突然又有需求,要新增BarItem,发现Add按钮木有了,那应该怎么办呢?

解决方案:

通过代码添加。

代码修改前:

namespace IconTest

 partial class Form1

 /// summary 

 /// 必需的设计器变量。

 /// /summary 

 private System.ComponentModel.IContainer components = null;

 /// summary 

 /// 清理所有正在使用的资源。

 /// /summary 

 /// param name="disposing" 如果应释放托管资源,为 true;否则为 false。 /param 

 protected override void Dispose(bool disposing)

 if (disposing (components != null))

 components.Dispose();

 base.Dispose(disposing);

 #region Windows 窗体设计器生成的代码

 /// summary 

 /// 设计器支持所需的方法 - 不要

 /// 使用代码编辑器修改此方法的内容。

 /// /summary 

 private void InitializeComponent()

 this.components = new System.ComponentModel.Container();

 this.barManager1 = new DevExpress.XtraBars.BarManager(this.components);

 this.bar1 = new DevExpress.XtraBars.Bar();

 this.bar2 = new DevExpress.XtraBars.Bar();

 this.barButtonItemDemo = new DevExpress.XtraBars.BarButtonItem();

 this.bar3 = new DevExpress.XtraBars.Bar();

 this.barDockControlTop = new DevExpress.XtraBars.BarDockControl();

 this.barDockControlBottom = new DevExpress.XtraBars.BarDockControl();

 this.barDockControlLeft = new DevExpress.XtraBars.BarDockControl();

 this.barDockControlRight = new DevExpress.XtraBars.BarDockControl();

 ((System.ComponentModel.ISupportInitialize)(this.barManager1)).BeginInit();

 this.SuspendLayout();

 // barManager1

 this.barManager1.Bars.AddRange(new DevExpress.XtraBars.Bar[] {

 this.bar1,

 this.bar2,

 this.bar3});

 this.barManager1.DockControls.Add(this.barDockControlTop);

 this.barManager1.DockControls.Add(this.barDockControlBottom);

 this.barManager1.DockControls.Add(this.barDockControlLeft);

 this.barManager1.DockControls.Add(this.barDockControlRight);

 this.barManager1.Form = this;

 this.barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] {

 this.barButtonItemDemo});

 this.barManager1.MainMenu = this.bar2;

 this.barManager1.MaxItemId = 2;

 this.barManager1.StatusBar = this.bar3;

 // bar1

 this.bar1.BarName = "Tools";

 this.bar1.DockCol = 0;

 this.bar1.DockRow = 1;

 this.bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;

 this.bar1.Text = "Tools";

 // bar2

 this.bar2.BarName = "Main menu";

 this.bar2.DockCol = 0;

 this.bar2.DockRow = 0;

 this.bar2.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;

 this.bar2.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] {

 new DevExpress.XtraBars.LinkPersistInfo(this.barButtonItemDemo)});

 this.bar2.OptionsBar.MultiLine = true;

 this.bar2.OptionsBar.UseWholeRow = true;

 this.bar2.Text = "Main menu";

 // barButtonItemDemo

 this.barButtonItemDemo.Caption = "barButtonItemDemo";

 this.barButtonItemDemo.Id = 0;

 this.barButtonItemDemo.Name = "barButtonItemDemo"; 

 // bar3

 this.bar3.BarName = "Status bar";

 this.bar3.CanDockStyle = DevExpress.XtraBars.BarCanDockStyle.Bottom;

 this.bar3.DockCol = 0;

 this.bar3.DockRow = 0;

 this.bar3.DockStyle = DevExpress.XtraBars.BarDockStyle.Bottom;

 this.bar3.OptionsBar.AllowQuickCustomization = false;

 this.bar3.OptionsBar.DrawDragBorder = false;

 this.bar3.OptionsBar.UseWholeRow = true;

 this.bar3.Text = "Status bar";

 // barDockControlTop

 this.barDockControlTop.CausesValidation = false;

 this.barDockControlTop.Dock = System.Windows.Forms.DockStyle.Top;

 this.barDockControlTop.Location = new System.Drawing.Point(0, 0);

 this.barDockControlTop.Size = new System.Drawing.Size(414, 49);

 // barDockControlBottom

 this.barDockControlBottom.CausesValidation = false;

 this.barDockControlBottom.Dock = System.Windows.Forms.DockStyle.Bottom;

 this.barDockControlBottom.Location = new System.Drawing.Point(0, 320);

 this.barDockControlBottom.Size = new System.Drawing.Size(414, 23);

 // barDockControlLeft

 this.barDockControlLeft.CausesValidation = false;

 this.barDockControlLeft.Dock = System.Windows.Forms.DockStyle.Left;

 this.barDockControlLeft.Location = new System.Drawing.Point(0, 49);

 this.barDockControlLeft.Size = new System.Drawing.Size(0, 271);

 // barDockControlRight

 this.barDockControlRight.CausesValidation = false;

 this.barDockControlRight.Dock = System.Windows.Forms.DockStyle.Right;

 this.barDockControlRight.Location = new System.Drawing.Point(414, 49);

 this.barDockControlRight.Size = new System.Drawing.Size(0, 271);

 // Form1

 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

 this.ClientSize = new System.Drawing.Size(414, 343);

 this.Controls.Add(this.barDockControlLeft);

 this.Controls.Add(this.barDockControlRight);

 this.Controls.Add(this.barDockControlBottom);

 this.Controls.Add(this.barDockControlTop);

 this.Name = "Form1";

 this.Text = "Form1";

 ((System.ComponentModel.ISupportInitialize)(this.barManager1)).EndInit();

 this.ResumeLayout(false);

 #endregion

 private DevExpress.XtraBars.BarManager barManager1;

 private DevExpress.XtraBars.Bar bar1;

 private DevExpress.XtraBars.Bar bar2;

 private DevExpress.XtraBars.Bar bar3;

 private DevExpress.XtraBars.BarDockControl barDockControlTop;

 private DevExpress.XtraBars.BarDockControl barDockControlBottom;

 private DevExpress.XtraBars.BarDockControl barDockControlLeft;

 private DevExpress.XtraBars.BarDockControl barDockControlRight;

 private DevExpress.XtraBars.BarButtonItem barButtonItemDemo;

此时,界面上只有barButtonItemDemo一个控件,如图:


小注:虽然此时Bar上有Add按钮,但我们仍然通过代码添加BarItem。

比如我们仍然要添加一个按钮BarButtonItem,代码如下:

namespace IconTest

 partial class Form1

 /// summary 

 /// 必需的设计器变量。

 /// /summary 

 private System.ComponentModel.IContainer components = null;

 /// summary 

 /// 清理所有正在使用的资源。

 /// /summary 

 /// param name="disposing" 如果应释放托管资源,为 true;否则为 false。 /param 

 protected override void Dispose(bool disposing)

 if (disposing (components != null))

 components.Dispose();

 base.Dispose(disposing);

 #region Windows 窗体设计器生成的代码

 /// summary 

 /// 设计器支持所需的方法 - 不要

 /// 使用代码编辑器修改此方法的内容。

 /// /summary 

 private void InitializeComponent()

 this.components = new System.ComponentModel.Container();

 this.barManager1 = new DevExpress.XtraBars.BarManager(this.components);

 this.bar1 = new DevExpress.XtraBars.Bar();

 this.bar2 = new DevExpress.XtraBars.Bar();

 this.barButtonItemDemo = new DevExpress.XtraBars.BarButtonItem();

 //手动添加下面代码 CodeTest

 this.CodeTest = new DevExpress.XtraBars.BarButtonItem();

 this.bar3 = new DevExpress.XtraBars.Bar();

 this.barDockControlTop = new DevExpress.XtraBars.BarDockControl();

 this.barDockControlBottom = new DevExpress.XtraBars.BarDockControl();

 this.barDockControlLeft = new DevExpress.XtraBars.BarDockControl();

 this.barDockControlRight = new DevExpress.XtraBars.BarDockControl();

 ((System.ComponentModel.ISupportInitialize)(this.barManager1)).BeginInit();

 this.SuspendLayout();

 // barManager1

 this.barManager1.Bars.AddRange(new DevExpress.XtraBars.Bar[] {

 this.bar1,

 this.bar2,

 this.bar3});

 this.barManager1.DockControls.Add(this.barDockControlTop);

 this.barManager1.DockControls.Add(this.barDockControlBottom);

 this.barManager1.DockControls.Add(this.barDockControlLeft);

 this.barManager1.DockControls.Add(this.barDockControlRight);

 this.barManager1.Form = this;

 this.barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] {

 this.barButtonItemDemo

 //手动添加下面代码 CodeTest

 this.CodeTest});

 this.barManager1.MainMenu = this.bar2;

 this.barManager1.MaxItemId = 3;

 this.barManager1.StatusBar = this.bar3;

 // bar1

 this.bar1.BarName = "Tools";

 this.bar1.DockCol = 0;

 this.bar1.DockRow = 0;

 this.bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;

 this.bar1.Text = "Tools";

 // bar2

 this.bar2.BarName = "Main menu";

 this.bar2.DockCol = 0;

 this.bar2.DockRow = 1;

 this.bar2.DockStyle = DevExpress.XtraBars.BarDockStyle.Top;

 this.bar2.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] {

 new DevExpress.XtraBars.LinkPersistInfo(this.barButtonItemDemo)

 // 手动添加下面代码 CodeTest

 new DevExpress.XtraBars.LinkPersistInfo(this.CodeTest)});

 this.bar2.OptionsBar.MultiLine = true;

 this.bar2.OptionsBar.UseWholeRow = true;

 this.bar2.Text = "Main menu";

 // barButtonItemDemo

 this.barButtonItemDemo.Caption = "barButtonItemDemo";

 this.barButtonItemDemo.Id = 0;

 this.barButtonItemDemo.Name = "barButtonItemDemo";

 // CodeTest

 // 手动添加下面代码 CodeTest

 this.CodeTest.Caption = "CodeTest";

 this.CodeTest.Id = 2;

 this.CodeTest.Name = "CodeTest";

 // bar3

 this.bar3.BarName = "Status bar";

 this.bar3.CanDockStyle = DevExpress.XtraBars.BarCanDockStyle.Bottom;

 this.bar3.DockCol = 0;

 this.bar3.DockRow = 0;

 this.bar3.DockStyle = DevExpress.XtraBars.BarDockStyle.Bottom;

 this.bar3.OptionsBar.AllowQuickCustomization = false;

 this.bar3.OptionsBar.DrawDragBorder = false;

 this.bar3.OptionsBar.UseWholeRow = true;

 this.bar3.Text = "Status bar";

 // barDockControlTop

 this.barDockControlTop.CausesValidation = false;

 this.barDockControlTop.Dock = System.Windows.Forms.DockStyle.Top;

 this.barDockControlTop.Location = new System.Drawing.Point(0, 0);

 this.barDockControlTop.Size = new System.Drawing.Size(414, 49);

 // barDockControlBottom

 this.barDockControlBottom.CausesValidation = false;

 this.barDockControlBottom.Dock = System.Windows.Forms.DockStyle.Bottom;

 this.barDockControlBottom.Location = new System.Drawing.Point(0, 320);

 this.barDockControlBottom.Size = new System.Drawing.Size(414, 23);

 // barDockControlLeft

 this.barDockControlLeft.CausesValidation = false;

 this.barDockControlLeft.Dock = System.Windows.Forms.DockStyle.Left;

 this.barDockControlLeft.Location = new System.Drawing.Point(0, 49);

 this.barDockControlLeft.Size = new System.Drawing.Size(0, 271);

 // barDockControlRight

 this.barDockControlRight.CausesValidation = false;

 this.barDockControlRight.Dock = System.Windows.Forms.DockStyle.Right;

 this.barDockControlRight.Location = new System.Drawing.Point(414, 49);

 this.barDockControlRight.Size = new System.Drawing.Size(0, 271);

 // Form1

 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

 this.ClientSize = new System.Drawing.Size(414, 343);

 this.Controls.Add(this.barDockControlLeft);

 this.Controls.Add(this.barDockControlRight);

 this.Controls.Add(this.barDockControlBottom);

 this.Controls.Add(this.barDockControlTop);

 this.Name = "Form1";

 this.Text = "Form1";

 ((System.ComponentModel.ISupportInitialize)(this.barManager1)).EndInit();

 this.ResumeLayout(false);

 #endregion

 private DevExpress.XtraBars.BarManager barManager1;

 private DevExpress.XtraBars.Bar bar1;

 private DevExpress.XtraBars.Bar bar2;

 private DevExpress.XtraBars.Bar bar3;

 private DevExpress.XtraBars.BarDockControl barDockControlTop;

 private DevExpress.XtraBars.BarDockControl barDockControlBottom;

 private DevExpress.XtraBars.BarDockControl barDockControlLeft;

 private DevExpress.XtraBars.BarDockControl barDockControlRight;

 private DevExpress.XtraBars.BarButtonItem barButtonItemDemo;

 //手动添加下面代码 CodeTest

 private DevExpress.XtraBars.BarButtonItem CodeTest;

此处新增控件为CodeTest,效果如下图:


此时,就可以进行修改图片,点击事件之类的处理了,与通过Add按钮生成的用法一致。

小结:所谓的通过代码添加BarItem,即是参照之前的代码,手动复制修改一下即可。