2012-03-02 83 views
0

我試圖趕上TAB鍵的事件,但忽略了最低的工作,我嘗試使用此代碼,但還是沒有結果,wath應該怎麼做:不能趕上TAB使用keyUp

protected override bool IsInputKey(Keys keyData) 
    { 
     if (keyData == Keys.Tab) 
      return true; 
     return base.IsInputKey(keyData); 
    } 

請求幫助! 謝謝!

我試圖做到這一點:

 private void comboBox1_KeyUp(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab) 
     { 
      try 
      { 
       DataView dv = glObalDataSet.Tables["JOBURI"].DefaultView; 
       dv.RowFilter = "CONT = '" + comboBox1.SelectedValue.ToString() + "'"; 
       comboBox2.DataSource = LoadDataTable(dv); 
       comboBox2.DisplayMember = "JOB"; 

       comboBox2.AutoCompleteCustomSource = LoadAutoComplete("JOB", dv); 
       comboBox2.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
       comboBox2.AutoCompleteSource = AutoCompleteSource.CustomSource; 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
    } 
+0

你到底想幹什麼? – Jon 2012-03-02 09:08:11

+1

這是在Winforms中嗎?如果是這樣,它已被回答在SO以前:http://stackoverflow.com/questions/2461512/how-to-intercept-capture-tab-key-in-winforms-application – Krishna 2012-03-02 09:09:27

回答

0

嘗試使用一個消息過濾器:

我不知道我用正確的密鑰選項卡在這裏,試圖找到合適的人在這裏:http://www.woodmann.com/fravia/sources/WINUSER.H

// Add IMessageFilter to the form 
public partial class Form1 : Form, IMessageFilter 

    public bool PreFilterMessage(ref Message m) 
    { 
     if (m.Msg == 0x0100) 
      { 
     { 
      DataView dv = glObalDataSet.Tables["JOBURI"].DefaultView; 
      dv.RowFilter = "CONT = '" + comboBox1.SelectedValue.ToString() + "'"; 
      comboBox2.DataSource = LoadDataTable(dv); 
      comboBox2.DisplayMember = "JOB"; 

      comboBox2.AutoCompleteCustomSource = LoadAutoComplete("JOB", dv); 
      comboBox2.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
      comboBox2.AutoCompleteSource = AutoCompleteSource.CustomSource; 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
       return true; 
      } 
     return false; 
    } 

編輯:我認爲正確的關鍵是0100

+0

即使KeyDown不工作 – XandrUu 2012-03-02 09:15:31

+0

是否它與Enter一起工作? – Peter 2012-03-02 09:16:34

+0

是的,輸入工作正常 – XandrUu 2012-03-02 09:17:17