c#程序按键盘没有反映
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
MessageBox.Show(e.KeyCode.ToString(),"ssss");
}
}
}
我新建的工程,没做任何设定,响应键盘的函数是打上去的 --------------------编程问答-------------------- 这个是释放按键时候发生,没得问题。能够弹出MessageBox --------------------编程问答--------------------
--------------------编程问答-------------------- 有问题,绝对弹不出来后来我加了KeyUp += new System.Windows.Forms.KeyEventHandler(Form1_KeyUp);才可以,但是在另一个工程中又不能用了,那个工程有panel控件 --------------------编程问答--------------------
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_KeyUp(object sender, KeyEventArgs e)
{
MessageBox.Show(e.KeyCode.ToString(), "系统提示");
}
}
那就是你之前没绑定事件啥 --------------------编程问答-------------------- 你把你现在添加的删除,在Form.Desiger.cs看看有没有下面这句话
--------------------编程问答-------------------- 是不是你的事件绑定代码丢失了啊? --------------------编程问答-------------------- 高人在哪里啊? 我在写一个打字游戏,找了个范例,范例可以很好的响应键盘.我的就不可以,同样是响应键盘的函数啊!!!我发现范例的panel1 控件和我的不一样.在范例里把他自代的panel换成新的范例也不响应键盘了,着难道是控件设置的问题 --------------------编程问答-------------------- 这个是你在设计界面,没有通过点击控件来绑定事件,而是直接把事件的执行代码加进去了。所以不会执行。
this.Load += new System.EventHandler(this.Form2_Load);
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form2_KeyUp);
this.ResumeLayout(false);
要不你就在代码中,手动的增加事件订阅,要不就在界面上通过事件属性来增加。就这么简单。 --------------------编程问答-------------------- 没有这样的代码 --------------------编程问答-------------------- 这是范例的Form.Desiger.cs
namespace LetterGame
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
} --------------------编程问答-------------------- private void panel1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
8楼的高人,panel1_PreviewKeyDown这事件的代码怎么通过鼠标点来加 --------------------编程问答-------------------- 把form的KeyPreview属性设置成true 试试。
补充:.NET技术 , C#