0

これは、私のデータがデータベースに保存される方法です。

id    parentId      menu                   filename

1     0             Menu1     

2     1             Sub Menu 1.1     

3     0             Menu2     

4     3             Sub Menu2.1    

5     3             Sub Menu2.2  

6     5             My file                D:\a.txt

7     0             Menu 3     

8     7             My file (menu3)        D:\b.txt

リボン コントロールにメニュー/サブメニュー/ファイル名を表示したい。誰かがこのようなことをした場合、これを行う方法を提案してください。リボン フォームを作成し、次にリボン コントロールを作成し、バー ボタン アイテムを追加しました。ここで、ナビゲーション矢印egmenu1、menu2、menu3をナビゲーション矢印付きのメニューに表示したいと思います。これは、ホバーするとサブメニューが表示され、サブメニューに子要素がある場合は再び矢印が表示されます。

プラットフォーム: VS2012、Windows アプリケーション、C#

4

2 に答える 2

1

The List of Bar Items and Linksヘルプ記事をご覧ください。
このドキュメントによると、リボン内のサブメニューを表すには、Button( BarButtonItem ) アイテムの代わりにMenu( BarSubItem ) アイテムを使用する必要があります。

于 2014-02-05T14:56:44.267 に答える
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));                
        }
    }
于 2014-02-20T11:13:09.247 に答える