1.将窗体的属性KeyPrieview设置为true
2.在窗体KeyDown事件中加如下代码
private void FormVali_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
//屏掉alt+f4
if ((e.KeyCode == Keys.F4)&&(e.Alt == true))
{
e.Handled = true;
}}
private void FormVali_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
e.Handled = true;
}}private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.Control==true && e.KeyValue==13)
{
this.button1.PerformClick(); 
}
}private void FormVali_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter&&e.Control==true)
{
this.button1.PerformClick(); 
}
}

解决方案 »

  1.   

    请问zhzuo(秋枫),根据你给的方法我想屏蔽掉Alt+Tab键,但没成功,我是这样写的:
    if ((e.KeyCode == Keys.Tab)&&(e.Alt == true))
    {
        e.Handled = true;
    }
    难道不对吗?请指教
      

  2.   

    给你一个例子:
    protected override bool ProcessCmdKey(ref Message msg,Keys keyData)
    {
    if ( ( !(ActiveControl is Button)) && (keyData==Keys.Up || keyData==Keys.Down || keyData==Keys.Enter))
    {
    if(keyData == Keys.Enter)
    {
    System.Windows.Forms.SendKeys.Send("{TAB}");
    return true;
    }
    if(keyData==Keys.Down )
    System.Windows.Forms.SendKeys.Send("{TAB}");
    else
    SendKeys.Send("+{Tab}");
    return true;
    }
    else
    return base.ProcessCmdKey(ref msg,keyData);
    }