Я ищу функцию, которая дает мне возможность начать поиск через мой DGV без нажатия на кнопку «Поиск». Therefor Я сделал кнопку поиска, которая начинается процесс поиска по щелчку: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;
}
}
}
// Not found
return -1;
}
SearchValueRowIndex:
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 void button1_KeyPress(object sender, KeyEventArgs e)
{
if (e.KeyValue.ToString() == Keys.Enter.ToString())
{
button1.PerformClick();
}
}
Но это не сработает. Я уже пробовал несколько изменений, которые тоже не сработали. Отсутствует ошибка или исключение, просто ничего не происходит, если я использую кнопку «ENTER».
Включена ли кнопка, когда вы нажимаете клавишу? Если нет, то он не будет захватывать клавиатуру. Кроме того, это необязательно, так как событие нажатия клавиши произойдет только тогда, когда фокус установлен на кнопку, при нажатии клавиши ввода он поднимет событие клика. – Gusman
и как добавить фокус для ключа? – MarvinR
вам действительно нужна кнопка? Я имею в виду, что форма может иметь свойство KeyPreview, установленное в true, и затем оно получит любое нажатие клавиши. – Gusman