选中窗体,看属性面板,的小闪电图标(事件)
找到KeyPress事件,就是键盘事件了。双击,会出一个事件对应的方法。类似如下:private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if((Keys)e.KeyChar==Keys.Enter)
            {
                MessageBox.Show("enter");
            }
        }

解决方案 »

  1.   

    this.KeyPreview=true;
    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if((Keys)e.KeyChar==Keys.Enter)
                {
                    MessageBox.Show("enter");
                }
            }
      

  2.   

    this.KeyPreview=true;
    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if((Keys)e.KeyChar==Keys.Enter)
                {
                    MessageBox.Show("enter");
                }
            }
    断点调试一下就知道怎么做了。
      

  3.   

    实现一个支持IMessageFilter接口的类
    实现PreFilterMessage接口方法,原理上应该和windows API setwindowlong差不多了
    定义如下
    public bool PreFilterMessage(ref Message m)
            {
     
                if (m.Msg == MessageEnum.WM_KEYDOWN.GetHashCode())
                {
                    //上面的MessageEnum是自己写的枚举类型,用来封装键盘的东东了
                }
                if (m.Msg == MessageEnum.WM_KEYUP.GetHashCode())
                {
                    if (m.WParam.GetHashCode() == VKEnum.VK_SHIFT.GetHashCode())
                    {
                        ShiftIsDown = false;
                    }
                }
                
                return false;
            }
      

  4.   

    没写完就弄提交了...
    接着使用Application.AddMessageFilter.装入消息接收器.
    ok了
      

  5.   

    还有一个问题:
      Bitmap map =new Bitmap()中如何控制大小,我想使所有的图片都在picturebox控件上按照picturebox的大小显示完整!