【问题标题】:ContextMenuStrip renders at top left WindowsContextMenuStrip 在左上角呈现 Windows
【发布时间】:2011-04-23 06:59:49
【问题描述】:

当我渲染 contextmenustrip 时,它会在我的 PC 屏幕的左上角渲染。我有一个列表视图,其中包含 5-6 个项目,右键单击每个项目时,会显示上下文菜单条。此外,我还需要更改上下文菜单条的颜色,包括背景和文本。

提前致谢!

【问题讨论】:

    标签: c# winforms visual-studio-2008 contextmenustrip


    【解决方案1】:

    您没有显示任何代码,但是如果您没有调用将控件作为参数的Show 重载,那么您显然传递的new Point(0, 0) 会将菜单放在屏幕的左上角.

    【讨论】:

    • 感谢您的回复。是的,事情就是这样。我刚刚写了 ContextMenu1.Show()。我应该写什么以确保它显示在每个列表视图选定项目的下方?
    • 查看 Show 的一些重载。其中一个需要一个控制点和一个点。将您的 ListView 作为控件传递,以及您要在附近显示的项目的 (x,y) 坐标。您可以从 ListView 中为其显示的任何项目请求这些坐标。
    【解决方案2】:

    到目前为止,最简单的方法是将 ListView.ContextMenuStrip 属性设置为您的 CMS,然后一切都是自动的。您可以在设计器中这样做。

    如果您出于某种原因需要自定义处理程序,例如检查是否单击了正确的项目,则可以使用如下代码调用 Show() 方法属性:

        private void listView1_MouseClick(object sender, MouseEventArgs e) {
            if (allowContextMenu(listView1.SelectedItems) {
                contextMenuStrip1.Show(listView1, e.Location);
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2021-02-10
      • 2021-10-21
      • 2019-01-13
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      相关资源
      最近更新 更多