none
[求助]C#的Form 上 F1 ~F12 我想做成快捷键,怎么做的? RRS feed

  • 问题

  • 求助,如题;

    还有form上比如一个提交按键,我想按ctrl +s 它就能自动保存,这种怎么做的,求助!


    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年9月9日 6:57

答案

  • 你好:

    是控件的是可以通过ShortcutKey 属性。其它的是需要在form中监听键盘事件,然后根据其值处理相应的事件。

    1、将Form的KeyPreview属性设置True

    2、对KeyDown事件写入代码
     private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.F2)
                {
                    MessageBox.Show("你按下了F2键");
                    //解发button1的单击事件
                    button1_Click(bt_save, null);
                }

            }

    http://www.cnblogs.com/luhuan860/archive/2010/05/31/1748346.html
    http://www.cnblogs.com/lijialong/archive/2010/06/29/FromHotKey.html
    http://www.cnblogs.com/deerchao/archive/2008/01/07/1028298.html

    希望对你有所帮助。

    2010年9月10日 5:11
    版主
  • 设置其 Button 的 ShortcutKey 属性就可以了。然后 Ctrl + S 在窗体被激活的情况下会直接触发 该 Button 的 Click 事件。
    Mark Zhou
    2010年9月9日 7:18
  • 你把窗体的KeyPreview = true设为TRUE,在窗体的KeyDown里面判断

    private void Form4_KeyDown(object sender, KeyEventArgs e)
        {
          if (e.KeyCode==Keys.F1)
          {
            MessageBox.Show("帮助");
            System.Diagnostics.Process.Start("帮助文档路径");
          }
          if (e.KeyCode==Keys.S&&e.Control)
          {
            button1_Click(sender, e);
            
          }
        }
        private void button1_Click(object sender, EventArgs e)
        {
          MessageBox.Show("中国");
        }
    

    http://blog.csdn.net/zx13525079024
    2010年9月10日 5:17

全部回复

  • 设置其 Button 的 ShortcutKey 属性就可以了。然后 Ctrl + S 在窗体被激活的情况下会直接触发 该 Button 的 Click 事件。
    Mark Zhou
    2010年9月9日 7:18
  • 谢谢,可是我怎么找不到 是form 程序,不是WEB的

    另外一个就是,如果我想设置。比如 F1,打开我自已写那那个帮助,怎么办?


    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年9月9日 8:15
  • 你好:

    是控件的是可以通过ShortcutKey 属性。其它的是需要在form中监听键盘事件,然后根据其值处理相应的事件。

    1、将Form的KeyPreview属性设置True

    2、对KeyDown事件写入代码
     private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.F2)
                {
                    MessageBox.Show("你按下了F2键");
                    //解发button1的单击事件
                    button1_Click(bt_save, null);
                }

            }

    http://www.cnblogs.com/luhuan860/archive/2010/05/31/1748346.html
    http://www.cnblogs.com/lijialong/archive/2010/06/29/FromHotKey.html
    http://www.cnblogs.com/deerchao/archive/2008/01/07/1028298.html

    希望对你有所帮助。

    2010年9月10日 5:11
    版主
  • 你把窗体的KeyPreview = true设为TRUE,在窗体的KeyDown里面判断

    private void Form4_KeyDown(object sender, KeyEventArgs e)
        {
          if (e.KeyCode==Keys.F1)
          {
            MessageBox.Show("帮助");
            System.Diagnostics.Process.Start("帮助文档路径");
          }
          if (e.KeyCode==Keys.S&&e.Control)
          {
            button1_Click(sender, e);
            
          }
        }
        private void button1_Click(object sender, EventArgs e)
        {
          MessageBox.Show("中国");
        }
    

    http://blog.csdn.net/zx13525079024
    2010年9月10日 5:17
  • 感谢朋友们的指点,非常谢谢,行了
    C#初学者,所以提的问题对各位前辈朋友来说可能很简单,也可能问法也不对,非常期待大家的回答……
    2010年9月11日 7:39