A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

load事件中添加button代码:
  1. ///开始按钮
  2.             Button btnStart = new Button();
  3.             btnStart.Text = "开始";
  4.             btnStart.Size = new Size(80, 30);
  5.             btnStart.Location = new Point((pl.Size.Width - btnStart.Size.Width) / 2, (pl.Size.Height - btnStart.Size.Height) / 2);
  6.             btnStart.Click += Start_Click;
  7.             //pl.Controls.Add(btnStart);
复制代码


formKeyDown 事件中 第一行代码为MessageBox.Show(e.KeyValue.Tostring());

这两个事件应该没关系才对啊  怎么会冲突的

2 个回复

倒序浏览
原因是由于窗体中添加了控件,于是焦点就在其中一个控件上,如果要处理的事件窗体和获取焦点的控件都同时拥有,系统就会将键盘的操作键值直接传递给这个获取焦点的控件。就出现你这种问题了
解决:获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件。
如果窗体将接收所有键事件,则为 true;如果窗体上当前选定控件接收键事件,则为 false。默认为 false。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
诱惑灵魂 发表于 2013-12-19 21:36
原因是由于窗体中添加了控件,于是焦点就在其中一个控件上,如果要处理的事件窗体和获取焦点的控件都同时拥 ...

KeyPreview属性设为true后所有的字符都是可以出发KeyDown事件的 但是上下左右键不可以    已找到解决办法  还是谢谢童鞋的回答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马