Revision: 45046
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 22, 2011 19:22 by huangsb
Initial Code
private void InitData(EOpenMode emOpenMode , string sDept)
{
//載入å„è©•åˆ†ç´°é …å³éµåŠŸèƒ½è¡¨
sql = "SELECT * FROM CallMonitorContextMenu";
if (mis.DBOpenSQL(sql, ref rs)) {
List<Label> categoryList = new List<Label>();
categoryList.AddRange(
new Label[] {
label110, label120, label130, label140, label150, label160,
label210, label220, label230, label240,
label310, label320, label330, label340, label350, label360, label370}
);
for (int i = 0; i < categoryList.Count; i++) {
EnumerableRowCollection<DataRow> query = rs.AsEnumerable()
.Where(row => row.Field<string>("Category") == categoryList[i].Text);
ContextMenuStrip menu = new ContextMenuStrip();
categoryList[i].ContextMenuStrip = menu;
EnumerableRowCollection<DataRow> querySubMenuItem =
query.Where(row => row.Field<int>("ParentMenuId") == 0);
foreach (var row in querySubMenuItem) {
ToolStripMenuItem subMenuItem =
(ToolStripMenuItem)menu.Items.Add(row.Field<string>("MenuText"));
CreateSubMenu(query, subMenuItem, row.Field<int>("MenuId"), 1);
}
}
}
}
private void CreateSubMenu(EnumerableRowCollection<DataRow> query,
ToolStripMenuItem menu, int parentMenuId, int level) {
if (level > 3)
return;
EnumerableRowCollection<DataRow> querySubMenuItem =
query.Where(row => row.Field<int>("ParentMenuId") == parentMenuId);
foreach (var row in querySubMenuItem) {
ToolStripMenuItem subMenuItem = (ToolStripMenuItem)menu.DropDownItems.Add(row.Field<string>("MenuText"));
subMenuItem.Tag = row.Field<string>("Category");
subMenuItem.Click += new EventHandler(subMenuItem_Click);
CreateSubMenu(query, subMenuItem, row.Field<int>("MenuId"), level + 1);
}
}
Initial URL
Initial Description
Initial Title
Create ContextMenu from database
Initial Tags
Initial Language
C#