BarManager 控制元件
最終實現的效果如下:
- 首先在窗體中拖出BarManager控制元件,窗體Bar add地方點選新增
- 設定BarManager的屬性 設定出現的窗體的底部【DockStyle=Bottom】
- 點選Add DropDown Menu 新增下拉選單
出現下拉選單
- 設定下拉選單中的子選單
選中下拉選單,然後點選下面的Add新增子選單 【這裡吐槽一下Dev這個設計器,是真的不好用,他把所有的子選單都展示出來了,點上面的分類也不好使】
- 在選單中設定圖片以及圖片和文字顯示方式
- 設定子選單的點選事件 在設計器中新增的BarButtonItem按鈕,在設計器介面是找不到事件屬性的,只能透過在Designer.cs 程式碼中新增關於按鈕的點選事件
Designer.cs
barButtonItem3.Caption = "掃碼列印";
barButtonItem3.Id = 2;
barButtonItem3.Name = "barButtonItem3";
barButtonItem3.ItemClick += BarButtonItem3_ItemClick;
private void BarButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
if (!this.MdiChildren.Any(a => a.Text == "掃碼列印"))
{
Form3 f = new Form3();
//指定父級窗體
f.MdiParent = this;
f.Show();
}
else
{
//遍歷所有子窗體,找到已經開啟的子窗體,並顯示 拒絕重複開啟
foreach (var item in this.MdiChildren)
{
if (item.Text == e.Item.Caption)
{
item.Activate();
break;
}
}
}
}
XtraTabbedMdiManager 控制元件
實現效果:實現多個子窗體同時展開,並出現在唯一的父窗體中。
- 首先在窗體中拖出XtraTabbedMdiManager控制元件
- 在上面選單按鈕的點選事件中寫入程式碼
private void BarButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
if (!this.MdiChildren.Any(a => a.Text == "掃碼列印"))
{
Form3 f = new Form3();
//指定父級窗體
f.MdiParent = this;
f.Show();
}
else
{
//遍歷所有子窗體,找到已經開啟的子窗體,並顯示 拒絕重複開啟
foreach (var item in this.MdiChildren)
{
if (item.Text == e.Item.Caption)
{
item.Activate();
break;
}
}
}
}
本篇文章僅作為學習記錄,如有錯誤歡迎大佬指出