Dev BarManager用法
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
最近使用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,即是參照之前的程式碼,手動複製修改一下即可。
相關文章
- BEA dev2dev 線上dev
- DEV dxTabbedMDIManagerdev
- 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的區別devNull
- Devexpress 控制元件學習記錄(一:BarManager 控制元件、XtraTabbedMdiManager 控制元件)devExpress控制元件
- Python Web DevPythonWebdev
- Elastic_Dev_ToolsASTdev
- Insider Dev Tour(2018.06.28)IDEdev
- dotnet dev-certs httpsdevHTTP
- 【Postopia Dev Log】Day 2dev
- 【Postopia Dev Blog】day 1dev
- DEV c++ 的配置devC++
- 從Node到Deno - DEVdev
- NPM run dev 報錯NPMdev
- application.yml&dev&redisAPPdevRedis
- Sublime Text 4 Dev中文破解版+Sublime Text 4 Dev啟用碼dev
- DEV cxgrid 自繪相關dev
- /dev/null和標準*使用devNull
- Waring: /dev/centos/swap does not existdevCentOS
- UX設計指南 - DEV社群UXdev
- WEB.DEV – Google SEO 工具WebdevGo
- android dev概念快速入門Androiddev
- Chrome Dev Tools---[效能篇]Chromedev
- 孫勇男:實時視訊 SDK 黑盒測試架構丨Dev for Dev 專欄架構dev
- python3 dev是什麼Pythondev
- Spring Boot + MYSQL + Docker的配置 - DEVSpring BootMySqlDockerdev
- Java位操作快速指南 (Dev Genius)Javadev
- Dev-C++5.11安裝教程devC++
- npm install -save 和 -save-devNPMdev
- java web dev知識積累JavaWebdev
- dev-server失蹤問題devServer
- Android Studio: /dev/kvm device permission deniedAndroiddev
- 聲網自研傳輸層協議 AUT 的落地實踐丨Dev for Dev 專欄協議dev
- ">/dev/null 2>&1 "是什麼意思devNull
- 沉浸式開箱 Windows Dev Kit 2023Windowsdev
- 【bash】關於 /dev/(tcp|udp)/${HOST}/${PORT}devTCPUDP
- 為什麼需要Deno.js? - DEVJSdev
- 關於 /dev/urandom 的流言終結devrandom
- Shell指令碼中的 /Dev/Null 用途指令碼devNull
- npm –save-dev –save 的區別NPMdev