【发布时间】:2020-03-17 08:41:30
【问题描述】:
【问题讨论】:
-
winforms = winapi,你可以process windows messages 并阻止某些到达
base.WndProc()。不知道到底是怎么回事。 -
@moathnaji 实际上,建议的副本与这个问题无关。
-
@RezaAghaei 对不起,在我看来它的功能相同!
【问题讨论】:
base.WndProc()。不知道到底是怎么回事。
如果您特别想禁用在窗口标题栏上右键单击显示系统上下文菜单,您可以处理WM_CONTEXTMENU:
const int WM_CONTEXTMENU = 0x007B;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_CONTEXTMENU)
m.Result = IntPtr.Zero;
else
base.WndProc(ref m);
}
如果您还想防止点击表单图标显示上下文菜单的可能性,则可以将表单的ShowIcon属性设置为false:
this.ShowIcon = false;
【讨论】:
您可以通过将表单的ControlBox 属性设置为false 来实现。
public Form1()
{
InitializeComponent();
this.ControlBox = false;
}
右键单击标题栏时不再显示带有恢复、最大化、最小化、关闭、移动的上下文菜单。
this.ControlBox = false;
注意:上面一行 (this.ControlBox = false;) 是键,并显示了带有 InitializeComponent() 方法调用的 Form1 构造函数是示例,只是为了显示上下文。
【讨论】:
您是否尝试将您的 Window Style 属性设置为“None”?这应该完全删除标题栏的上下文菜单。
【讨论】:
if (e.Button.ToString().ToLower()=="right"){//do whatever you need.}