您的位置:首页 > 大数据 > 人工智能

[DevExpress使用随笔]之BarManager控件中创建MainMenu

2017-11-23 09:35 561 查看
在BarManager中分别可以创建MainMenu、ToolBar、StatusBar



// 首先声明类MENU
public class MENU
{
public string MENUID { get; set; }
public string MENUNAME { get; set; }
public string MENUFID { get; set; }
public string MENUISF { get; set; }
public string MENUEXEC { get; set; }
}
// 声明一个List<T>类的UserMenu变量。
private static List<MENU> UserMenu = null;
可以使用ToList()方法获取菜单数据并赋给变量UserMenu,比如:
var query = from c in dbo.menu select c;
UserMenu = query.ToList();

// 声明一个BarManager类型的变量
private DevExpress.XtraBars.BarManager barManager1;
// 声明一个Bar类型的变量
private DevExpress.XtraBars.Bar bar1;
// 分别进行初始化
barManager1 = new DevExpress.XtraBars.BarManager();
bar1 = = new DevExpress.XtraBars.Bar();

// 定义BarManager的ItemClick事件
barManager1.ItemClick += new ItemClickEventHandler(barManager_ItemClick);

// bar停靠在顶部
bar1.DockStyle = BarDockStyle.Top;

// 设置bar作为barManager的ManiMenu
barManager1.MainMenu = bar1;

// 遍历UserMenu
foreach (var m in UserMenu)
{
if (m.MENUFID == "0")
{
// 声明BarSubItem类型的变量topMenu
BarSubItem topMenu = new BarSubItem(barManager1, m.MENUNAME);
topMenu.Name = "subMenu";

bar1.AddItems(new BarItem[] { topMenu });
CreateSubMenuBar(barManager1, topMenu, m.MENUID);
}
}

// 创建subMenu
public void CreateSubMenuBar(BarManager barManager1, BarSubItem topMenu, string MenuFID)
{
foreach (var m in SystemAuthentication.UserMenuAuthorities)
{
if (m.MENUFID == MenuFID)
{
if (m.MENUISF == "0")
{
BarButtonItem subButton = new BarButtonItem(barManager1, m.MENUNAME);
subButton.Name = "subButton";
subButton.Tag = m;
topMenu.AddItems(new BarItem[] { subButton });
}
else
{
BarSubItem subMenu = new BarSubItem(barManager1, m.MENUNAME);
subMenu.Name = "subMenu" + m.MENUID;
topMenu.AddItems(new BarItem[] { subMenu });
CreateSubMenuBar(barManager1, subMenu, m.MENUID);
}
}
}
}

// ItemClick事件
void barManager_ItemClick(object sender, ItemClickEventArgs e)
{
try
{
BarSubItem subMenu = e.Item as BarSubItem;
if (subMenu != null) return;
MessageBox.Show("Item '" + e.Item.Caption + "' has been clicked");
}
catch (Exception ex)
{ Msg.ShowException(ex); }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  devexpress