我有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事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)