2014-02-05 3 views
0

내 데이터가 데이터베이스에 저장되는 방식입니다.devexpress 리본 컨트롤 - 하위 요소가있는 경우 메뉴 및 하위 메뉴를 만드는 방법

아이디 parentId 메뉴 이름

1 0 메뉴 1

2 1 부 메뉴 1.1

3 0 메뉴 2

4 3 서브 Menu2.1

5 3 서브 메뉴 2. 2

6 5 내 파일 D : \ 메뉴

7 0

a.txt이 3

8 7 내 파일 (menu3) D : \ 나는 리본 컨트롤의 메뉴/하위 메뉴/파일 이름을 표시 할

b.txt. 누군가가 이와 같은 일을했다면, 이것이 어떻게 행해지는지 제안하십시오. 나는 리본 폼을 만들고 리본 컨트롤을 만들고, 바 버튼 아이템을 추가했다. 이제 여기에 네비게이션 화살표 egmenu1, menu2, menu3이있는 탐색 화살표가있는 메뉴를 보여주고 싶습니다. 네비게이션 화살표에는 호버 위에 하위 요소가있는 경우 화살표가 표시된 하위 메뉴와 하위 메뉴가 표시됩니다.

플랫폼 : VS2012, Windows 응용 프로그램, #

답변

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));     
     } 
    }