2014-02-05 30 views
0

這是我的數據如何存儲在數據庫中。devexpress功能區控制 - 如果子元素存在,如何創建菜單和子菜單

ID parentId的菜單文件名

1 0菜單1

2 1子菜單1.1

3 0菜單2

4 3子Menu2.1

5 3子菜單2。 2

6 5我的檔案D: \ A.TXT

7 0菜單3

8 7我的文件(菜單3)d:\ b.txt

我要顯示在功能區控制的菜單/子菜單/文件名。如果有人做了這樣的事情,請告訴我們如何做到這一點。我已經創建了一個功能區表單,然後功能區控制,添加了欄按鈕項。現在我想用導航箭頭例如菜單1,菜單2,菜單3顯示帶有導航箭頭的菜單,其中懸停顯示子菜單,並且子菜單再次顯示箭頭,如果其中存在任何子元素。

平臺:VS2012,Windows應用程序,C#

回答

0
private void AddMenu(string menuName, int id, int parentId, string fileName) 
    { 
     BarSubItem subitem = CreateSubItem(menuName, id, fileName); 

     if (parentId != 0) 
     { 
      BarSubItem parentItem = ribbon.Items.FindById(parentId) as BarSubItem; 
      parentItem.LinksPersistInfo.Add(new DevExpress.XtraBars.LinkPersistInfo(subitem)); 
     } 
     else 
     {     
      menuBarSubItem.LinksPersistInfo.Add(new DevExpress.XtraBars.LinkPersistInfo(subitem)); 
     } 
    } 

    private BarSubItem CreateSubItem(string menuName, int id, string fileName) 
    { 
     BarSubItem subitem = new BarSubItem(ribbon.Manager, menuName); 
     subitem.Id = id; 
     if (!string.IsNullOrEmpty(fileName)) 
      subitem.Glyph = System.Drawing.Image.FromFile("file.png"); 
     return subitem; 
    } 

    private void AddMenuItem(string menuName, int id, int parentId, string fileName) 
    { 
     BarButtonItem buttonItem = new BarButtonItem(ribbon.Manager, menuName); 
     buttonItem.Id = id; 
     buttonItem.Tag = fileName; 
     buttonItem.ItemClick += buttonItem_ItemClick; 

     if (!string.IsNullOrEmpty(fileName)) 
      buttonItem.Glyph = System.Drawing.Image.FromFile("file.png"); 
     if (parentId != 0) 
     { 
      BarSubItem parentItem = ribbon.Items.FindById(parentId) as BarSubItem; 
      parentItem.LinksPersistInfo.Add(new DevExpress.XtraBars.LinkPersistInfo(buttonItem)); 
     } 
     else 
     { 
      menuBarSubItem.LinksPersistInfo.Add(new DevExpress.XtraBars.LinkPersistInfo(buttonItem));     
     } 
    }