【问题标题】:C# Custom Border Titlebar MenuC# 自定义边框标题栏菜单
【发布时间】:2019-05-16 22:59:37
【问题描述】:

我创建了带有自定义边框和标题栏的 C# winforms。我在论坛上禁用了控制框(ControlBox = false),但它似乎也禁用了右键单击标题栏时出现的系统上下文菜单。将控制框设置为 false 时是否可以使用上下文菜单?

【问题讨论】:

  • 为什么还要禁用它?
  • 我只是在徘徊,如果有办法做到这一点。我想要没有标题按钮的菜单(最小,最大关闭)。如果没有,我将不得不处理标题栏右侧角落的 WM_NCHITTEST,包括 HTRIGHT 和 HTOPRIGHT。就是这样,不要想着可能有更简单的方法就复杂了。

标签: c# winforms api


【解决方案1】:

据我所知,简短回答否

长答案你不能使用上下文菜单,因为它是控制框本身的一部分

【讨论】:

  • 是的,我就是这么想的。我试图尽量减少对 WM_NCHITTEST 的处理。
  • 如果您同意,请将我的回答标记为正确本文向您展示了meta.stackexchange.com/questions/16721/…谢谢
  • 我打算明天做标记。只是稍微伸出一点,看看是否有另一种观点。暂时给你一个向上箭头。
【解决方案2】:

@System.Object 是对的,上下文菜单是控制框的一部分,但是如果你真的想拥有它,你可以自己写,因为我在 windows7 中看到了默认的标题栏上下文菜单(恢复,大小,移动、退出等)没什么大不了的。

你可以用c#WPF重写你的项目,没有太大区别。如果您正在计划更复杂的设计,从长远来看应该会有所回报。

【讨论】:

  • 很多代码是在 Winforms 中完成的,所以切换到 WPF 有点晚了。另外我对 WPF 了解不多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
相关资源
最近更新 更多