2010-04-13 41 views

回答

6
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     this.KeyPreview = true; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     System.Windows.Forms.MessageBox.Show("Ctrl-F was Pressed."); 
    } 
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
    { 
     if (keyData == (Keys.Control | Keys.F)) 
     { 
      button1.PerformClick(); 
     } 
     return base.ProcessCmdKey(ref msg, keyData); 
    } 
} 

注:爲了模擬點擊動畫,使Click事件是這樣的:

private void button1_Click(object sender, EventArgs e) 
    { 
     button1.FlatStyle = FlatStyle.Flat; 
     System.Windows.Forms.MessageBox.Show("foo"); 
     button1.FlatStyle = FlatStyle.Standard; 
    } 

它並不完美,但它的作品。

+0

請參閱我的動畫編輯。沒有消息框(至少有東西在那裏打破)的動畫不起作用的 – 2010-04-13 03:04:11

+0

。小處理的情況下沒有任何變化。 – 2013-11-26 16:22:05

+0

我會想象你必須勾住keydown和keyup事件。 – 2013-11-26 16:27:54