菜单项显示在任务栏上而不是在任务栏上方

时间:2011-04-07 17:32:34

标签: c#

我使用c#手动将通知图标添加到基于表单的应用程序的任务栏。菜单添加正常,但是当我右键单击图标时,列表将显示在任务栏下方作为默认值。如何让它出现在您通常期望的位置?

NotifyIcon notfiyIcon = new NotifyIcon();
            ContextMenu contextMenu = new ContextMenu();
            MenuItem menuItem = new MenuItem();

            menuItem.Text = "Exit";
            menuItem.Click += new System.EventHandler(this.btnLogOut_Click);

            contextMenu.MenuItems.Add(menuItem);
            contextMenu.MenuItems.Add("hello");
            notfiyIcon.ContextMenu = contextMenu;

            notfiyIcon.Text = "Property Sales";

            Icon icon = new Icon("icon.ico");
            notfiyIcon.Icon = icon;

            notfiyIcon.Visible = true;

enter image description here

这就是我希望它出现的地方。

enter image description here

1 个答案:

答案 0 :(得分:2)

这是Windows上下文菜单的预期行为。

通常,上下文菜单从鼠标位置向下打开,这是您在第一个屏幕截图中看到的。在第二个屏幕截图中,上下文菜单太高而无法向下打开(它会从屏幕延伸出来),因此它会从鼠标位置向上打开,以便完全可见。

您可以手动设置菜单位置,但为了保持一致,不建议使用。