【问题标题】:Position of ContextMenu vs ContextMenuStripContextMenu 与 ContextMenuStrip 的位置
【发布时间】:2014-06-06 04:08:56
【问题描述】:

我正在尝试将第一个 ContextMenuStrip 作为菜单添加到应用程序中。但是只有 ContextMenu 出现在应用程序窗口的范围内,ContextMenuStrips 出现在应用程序窗口之外。

我开始维护的这个应用程序是一种类似于 Windows 任务栏的停靠栏或工具栏;它占用了屏幕的边缘,其他窗口无法出现或最大化。此应用程序当前在屏幕顶部运行,并且 ContextMenuStrips 以正确的水平坐标显示,但在垂直方面错误地显示在应用程序窗口的底部。

(我是维护这个应用程序的新手,所以我不确定它如何控制其他窗口不能以与任务栏相同的方式出现或最大化。)

编辑图片以进行澄清; 紫色线是显示器的边界,浅蓝色框是应用程序的边界,其行为类似于 Windows 任务栏,深蓝色框是我们要单击以使菜单出现的按钮的边界,绿色框是该按钮的 ContextMenu 的边界(如预期的那样),问题是橙色框是 ContextMenuStrip 的边界(它出现在它应该出现的位置下方)。我希望橙色框出现在与绿色框相同的位置。

【问题讨论】:

  • 这里的问题到底是什么,从 ContextMenuStrip 与 ContextMenu 期望什么位置?

标签: c# .net position contextmenu contextmenustrip


【解决方案1】:

ContextMenuStrip 是如何创建的以及如何显示的?

此示例使用动态创建的ContextMenuStrip,它适用于我:

ContextMenuStrip cms = new ContextMenuStrip();

private void button4_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
        cms.Items.Add("Test Menu");
        cms.Show(button4.PointToScreen(e.Location));
    }
}

然而,动态创建应该是无关紧要的。

但也许你提到的对接有干扰?它是如何实现的?

【讨论】:

  • 感谢演示,我自己也有类似的事情可以将问题分解为上面的图表。 “它是如何实施的?”这是一个很好的问题,我觉得我需要先弄清楚,然后才能进一步
猜你喜欢
  • 1970-01-01
  • 2012-01-16
  • 2019-02-15
  • 2017-06-29
  • 2012-06-04
  • 2012-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多