C# 如何将控件传递键盘事件给窗体

我有一个窗体 上面 有一个groupbox控件, 我希望实现的效果是: 我在groupbox上面点一下, 让窗体也有点一下的效果, 就是说 我不管在窗体上面什么位置 什么控件上面点一下鼠标, 就跟我直接点在窗体上面一样,窗体知道我已经按下了 鼠标。

初学C# 问的问题也很奇怪,希望各位大大 帮帮忙。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void groupBox1_Click(object sender,EventArgs e)
{
//下面两种方法都是可行的,你都可以试试。
//this.OnClick(e); //方案1
Form1_Click(sender, e); //方案2

//方案2比较直观一些吧,呵呵。

//而且下面这种的另一个好处就是知道用户点的是groupbox还是窗体
//注意一下2种情况中,弹出的对话框的内容有什么不同你就明白我的意思了

}
private void Form1_Load(object sender, EventArgs e)
{
groupBox1.Click += new EventHandler(groupBox1_Click);
this.Click+=new EventHandler(Form1_Click);
}

private void Form1_Click(object sender, EventArgs e)
{
MessageBox.Show(sender.ToString());
}

}

我也是初学者,不知以后我遇到问题的时候能不能再与你交流呢~呵呵
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-15
此类问题注意要点键盘事件的触发条件。当form的keypreview属性为false的时候(默认),只有获得焦点的控件才能接收键盘事件,而设置为true,则任何时候form本身都可以接收事件。所以通常可以把此属性设置为true,然后所有键盘事件都写在form_keydown里面。

C# 如何将控件传递键盘事件给窗体
\/\/方案2比较直观一些吧,呵呵。\/\/而且下面这种的另一个好处就是知道用户点的是groupbox还是窗体 \/\/注意一下2种情况中,弹出的对话框的内容有什么不同你就明白我的意思了 } private void Form1_Load(object sender, EventArgs e){ groupBox1.Click += new EventHandler(groupBox1_Click);this.Click...

c# 自定义的按钮控件 如何设置为窗体的AcceptButton
你的button要实现接口:IButtonControl public class MyButton : ButtonBase, IButtonControl { private DialogResult myDialogResult;public MyButton(){ \/\/ Make the button White and a Popup style \/\/ so it can be distinguished on the form.this.FlatStyle = FlatStyle.Popup;this.BackColor = Colo...

C# 中怎么让控件绑定键盘事件
哦。但你要先知道按下键盘上的数字1是什么效果,如在下面的textbox加1,那就在button1的click事件中模拟按下数字1的效果,即在textbox的text尾部加上1这个字符。

c# 如何实现上下键在TextBox之间移动(是在Windows Form里)
比较笨的方法:在keyPress或keyDown 事件中规定↑↓或者随意什么按键的 【按键事件】用textBox1.Focus() 让上面 或者下面的控件得到焦点 类似你按下Tab按键,在控件之间切换焦点的动作

C#中,给WinForm窗体中添加了几个按钮后就不会响应键盘事件了
你的键盘控制代码是在窗体的事件中触发的吧,当窗体中有按钮时,焦点通常是落在按钮上的,这个时候你通过键盘控制,就不能引发窗体的事件了。要解决这个问题,我记得好像在窗体的属性中有个keyprexxxxx(记不得单词了),把这个属性设置为true,就能解决你这个问题。

C# 给Winform 控件添加快捷键的几种方法
在大家给button、label、menuStrip等控件设置Text属性时在名字后边加&键名就可以了,比如button1.text= "确定(&O)"。就会有快捷键了,这时候按Alt+O就可以执行按钮单击事件。第二种:Ctrl+*及其他组合键 在WinForm中设置要使用组合键的窗体的KeyPreview(向窗体注册键盘事件)属性为True;然后使用窗体的Key...

C#中如何判断键盘按键和组合键
C# winform的窗体类有KeyPreview属性,可以接收窗体内控件的键盘事件注册。窗体和控件都有KeyDown,KeyUp,KeyPress三个事件,每个事件都会有KeyEventArgs参数传入,只要判断传入参数的KeyChar就可以了,Framework提供了Keys枚举来表示键盘上的各个键。核心判断的代码如下:1.单键判断 if (e.KeyCode == Keys....

本菜鸟正在学习用键盘上的按键控制C#窗体上的控件,例如,按下enter键...
\/\/在窗体的--事件--键里面的-KeyDown-双击添加 private void Form1_KeyDown(object sender, KeyEventArgs e){ if (e.KeyData==Keys.W) \/\/判断 e.KeyData(当前点击的键是否是)Keys.W(既键盘上的W){shang();} \/\/ if (e.KeyData == Keys.S)\/\/判断 e.KeyData(当前点击的键是否...

C#中panel 如何获取健盘事件
关于获取任意键盘事件, 我先整体的说明下. 在C#中:1. 那些支持键盘输入的控件(如TextBox,RichTextBox等), 或者Form窗体, 能够使用Key系列函数(KeyDown, KeyUp, KeyPress). 这些函数可以获取键盘事件.2. 此外, 那些容器控件(Form, Panel等), 可以通过PreviewKeyDown函数截取穿过容器的键盘事件, 从而...

C# winform 弹出输入框
首先,新建一个C#窗体项目。其次,添加控件至窗体,调整布局。将文本框控件命名为txtString,将确定按钮命名为btnOK,其文本为“确定”;将取消按钮命名为btnCancel,其文本为“取消”。接着,为按钮添加事件处理代码。双击按钮,为确定按钮添加点击事件,为取消按钮添加点击事件。点击确定按钮时,弹出对话框...

相似回答