「検索」ボタンをクリックせずに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」ボタンを使用しても何も起こりません。
キーを押したときにボタンにフォーカスがありますか?いいえの場合、キーボードをキャプチャしません。また、これは必須ではありません。キーの押下イベントはフォーカスがボタンに設定されている場合にのみ発生し、Enterキーを押すとクリックイベントが発生します。 – Gusman
とキーのフォーカスを追加する方法は? – MarvinR
本当にボタンが必要ですか?つまり、フォームにKeyPreviewプロパティをtrueに設定してからキープレスを受け取ることができます。 – Gusman