2016-10-21 11 views
0

「検索」ボタンをクリックせずにDGVで検索を開始できる機能を探しています。今、私はクリックしなくても、[検索の活性化のための新しいクラスを開こうとしたC#、WinForms - 'ENTER'ボタンで検索プロセスを開始する

private int SearchValueRowIndex() 
    { 
     string searchValue = textBox1.Text; 

     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      foreach (DataGridViewCell cell in row.Cells) 
      { 
       if (cell.Value != null && cell.Value.ToString() == searchValue) 
       { 
        return cell.RowIndex; 
       } 
      } 
     } 

private int SearchValueRowIndex() 
     { 
      string searchValue = textBox1.Text; 

      foreach (DataGridViewRow row in dataGridView1.Rows) 
      { 
       foreach (DataGridViewCell cell in row.Cells) 
       { 
        if (cell.Value != null && cell.Value.ToString() == searchValue) 
        { 
         return cell.RowIndex; 
        } 
       } 
      } 
      // Not found 
      return -1; 
     } 

SearchValueRowIndex:そのため私は、クリックで検索・プロセスを開始し、検索ボタンを作りましたその上に:

private void button1_KeyPress(object sender, KeyEventArgs e) 
    { 
     if (e.KeyValue.ToString() == Keys.Enter.ToString()) 
     { 
      button1.PerformClick(); 
     } 
    } 

しかし、それは動作しません。私は既にいくつかの変更を試みましたが、うまくいきませんでした。エラーや例外は表示されません。「ENTER」ボタンを使用しても何も起こりません。

+0

キーを押したときにボタンにフォーカスがありますか?いいえの場合、キーボードをキャプチャしません。また、これは必須ではありません。キーの押下イベントはフォーカスがボタンに設定されている場合にのみ発生し、Enterキーを押すとクリックイベントが発生します。 – Gusman

+0

とキーのフォーカスを追加する方法は? – MarvinR

+0

本当にボタンが必要ですか?つまり、フォームにKeyPreviewプロパティをtrueに設定してからキープレスを受け取ることができます。 – Gusman

答えて

0

あなたが検索テキストボックスに検索クエリを入力しているように思え。次に、textbox.KeyDownイベントを直接フックして、必要な結果を得ることができます。

private void SearchTextBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      //Perform search 
     } 
    } 
0

フォームのKeyPreview -Propertyをtrueに設定する必要があります。 そして、あなたはこのようなフォーム上のすべてのコントロールのKeyDown - イベントを実装することができます

private void button1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) this.button1_Click(sender, e); 
} 

private void txt_search_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) this.button1_Click(sender, e); 
} 
... 
+0

STRG + Fで検索しましたが、何も見つかりませんでした。どこに追加しますか? – MarvinR

+0

フォームのデザインビューには、プロパティウィンドウにKeyPreviewというプロパティがあります。 – Wudge

+0

見つかりませんでした。それを検索し、下に隠れることができるすべてのサブボタンを開く。 – MarvinR

0

AcceptButtonというフォームのプロパティがあります。これは、enterを押すと呼び出されます。たぶんこれはあなたの検索ボタンに設定することができます。

public Form1() 
     { 
      InitializeComponent(); 
      this.AcceptButton = button1;// button1 name of your button 
     } 
関連する問題