0

您知道,单击 RadMenuItem 后,子菜单正在打开。但这对我无效。我希望,当 onmouseover 事件时,子菜单会自动打开。通常在以下代码中的winforms实现我的愿望:

private void menuStrip_MouseEnter(object sender, EventArgs e)
{
    var menu = (ToolStripMenuItem)sender;
    menu.ShowDropDown();
}

你能帮我吗,我如何在 RadMenu 中做到这一点?

编辑:我试过这样:

private void rmiAna_MouseEnter(object sender, EventArgs e)
{
    var menu = (RadMenu)sender;
    menu.IsSubmenuOpen = true;
}

当我尝试上面的代码时,我得到了这样的错误: 在此处输入图像描述

你可以帮帮我吗?亲切的问候。

4

1 回答 1

0

要显示根项的子菜单项,您可以迭代所有菜单项并订阅根项的 MouseEnter 事件。在处理程序中,调用以下方法:

    private void radButton1_Click(object sender, EventArgs e)
    {
        IterateItems(radMenu1.Items);
    }

    void IterateItems(RadItemOwnerCollection items)
    {
        foreach (RadMenuItemBase item in items)
        {
            if (item.IsRootItem)
            {
                item.MouseEnter += item_MouseEnter;
            }

            if (item.HasChildItemsToShow)
            {
                IterateItems(item.Items);
            }
        }
    }

    void item_MouseEnter(object sender, EventArgs e)
    {
        RadMenuItem hoveredItem = (RadMenuItem)sender;
        hoveredItem.DropDown.Show();
    }
于 2015-12-02T06:17:39.123 回答