【问题标题】:Telerik RadMenu dropdown submenus on mouseoverTelerik RadMenu 鼠标悬停时的下拉子菜单
【发布时间】:2015-11-28 13:40:57
【问题描述】:

您知道,单击 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;
}

当我尝试上面的代码时,我得到了这样的错误:

你能帮帮我吗? 亲切的问候。

【问题讨论】:

  • 如果我清楚地理解,你需要 IsSubmenuOpen 属性。
  • @Spawn,首先谢谢你。当我将光标移到菜单上时,子菜单必须自动打开而无需单击。但是当我厌倦了这段代码时:var menu = (RadMenu)sender; menu.IsSubmenuOpen(); is not a valid property.
  • IsSubmenuOpen - 属性,而不是方法,所以我们写 menu.IsSubmenuOpen = true;
  • @Spawn,我编辑了我的问题,当我像你说的那样疲倦时,我得到了错误。谢谢。
  • WinForms.... 我的错,对不起。据我了解,这将是 ShowChildItems() 方法...

标签: c# winforms telerik radmenu


【解决方案1】:

要显示根项的子菜单项,您可以迭代所有菜单项并订阅根项的 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();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-16
    • 2013-03-14
    • 1970-01-01
    • 2022-08-22
    • 2020-04-10
    • 2021-04-28
    • 1970-01-01
    相关资源
    最近更新 更多