UserControl KeyDown事件不会触发撤销Windows应用程序KeyDown事件

UserControl KeyDown事件不会触发撤销Windows应用程序KeyDown事件,第1张

概述UserControl KeyDown事件不会触发撤销Windows应用程序KeyDown事件

我有UserControl并面临KeyDown事件的问题。 我的UserControls将显示反对撤销windows窗体keydown事件如下所示:

用户控件的事件:

private voID UserControl_KeyDown(object sender,KeyEventArgs e) { if ((Keys)e.KeyCode == Keys.Escape) { this.Visible = false; } }

上面的事件将不得不隐藏UserControl,但事件不会因为撤销窗体keydown而触发,如下所示:

windows窗体:

如何在ASP.NET(3.5)中创build“公共”用户configuration文件页面

从WPF设置窗口标题

自定义向导控件

WPF覆盖控制

在VB.net中dynamic添加一个用户控件

private voID button1_Click(object sender,EventArgs e) { panel1.SendToBack(); panel2.SendToBack(); panel3.SendToBack(); panel4.SendToBack(); am.Focus(); this.KeyDown -= new KeyEventHandler(Form1_KeyDown); }

这将显示UserControls作为UserControls被添加到windows窗体,如下所示:

private UserControl.UserControl am = new UserControl.UserControl(); public Form1() { InitializeComponent(); this.Controls.Add(am); }

我想撤消对可见的UserControl winform的keydown事件,并激发UserControl的keydown事件隐藏UserControl,但它不是很好。 UserControl事件的keydown事件不是火。 不知道为什么? 如何以正确的方式做同样的事情?

UserControl父窗口 – 在多个windows中使用此UserControl时

JavaScript像WinForms的模态窗口

ElementHost中的Application.Current为null

如何从不同的类调用类方法

windows和/或UserControl之间的通信模式/方法

键盘通知将张贴到焦点的控件。 这几乎从来不是一个用户控件,它不想要的焦点。 即使您使用Focus()方法明确设置焦点,也会立即将其传递给其子控件之一。 UserControl被设计成只是其他控件的容器。

改写ProcessCmdKey()方法。 将这段代码粘贴到控件类中:

protected overrIDe bool ProcessCmdKey(ref Message msg,Keys keyData) { if (keyData == Keys.Escape) { this.Visible = false; return true; } return base.ProcessCmdKey(ref msg,keyData); }

请注意,使用Escape键并不是最好的主意,您将用户控制的表单可能需要该键。 就像一个对话框。

总结

以上是内存溢出为你收集整理的UserControl KeyDown事件不会触发撤销Windows应用程序KeyDown事件全部内容,希望文章能够帮你解决UserControl KeyDown事件不会触发撤销Windows应用程序KeyDown事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1277434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存