Операторам нужны сочетания клавиш .
Из-за взаимодействия с оператором я уже улавливаю большую часть активности клавиатуры. У меня есть функция для запуска теста, и кнопка просто вызывает эту функцию. Но если я поймаю ключ:
Код: Выделить всё
if (e.Control && (e.KeyCode == Keys.Z))
{
if (button1.Enabled == true)
{
// Ready for test
DoButton();
textBox2.Text = "Pressed Ctrl-Z";
Application.DoEvents();
e.Handled = true;
}
else
{
// Test button disabled, test in progress, make this an "any key"
e.Handled = false;
}
return;
}
Я попробовал Button.PerformClick(), но он вел себя точно так же, не возвращаясь до тех пор, пока обработчик кнопки не завершится:
Код: Выделить всё
if (e.KeyCode == Keys.F1)
{
if (button1.Enabled == true)
{
// Ready for test
button1.PerformClick();
Clicked = true;
textBox2.Text = "Pressed F1";
Application.DoEvents();
e.Handled = true;
}
else
{
// Test button disabled, test in progress, make this an "any key"
e.Handled = false;
}
return;
}
Я знаю, что могу запустить задачу, но из-за участия оператора и большого количества DataGridViews я буду выполнять много вызовов, что, похоже, противоречит цели.
p>
Есть ли другой способ сделать это?
(Мне нужно несколько ярлыков, поэтому я не уверен, что трюк & сработает)
Дополнительная информация:
Процедуру тестирования следует запускать только один раз, т. е. без повторного входа. Вот почему я проверяю, включена ли кнопка, чтобы предотвратить повторный случайный запуск процедуры оператором.
Во время процедуры происходит много взаимодействия с оператором, поскольку у него есть чтобы ввести некоторые числа, которые помещены в DataGridView, сделайте паузу, чтобы сбросить некоторые условия и другие вещи. Обратите внимание, я не использую всплывающие окна или запросчики, оператор просто вводит цифры или буквы на клавиатуре или после установки новых условий нажимает клавишу "любая".
Подробнее здесь: https://stackoverflow.com/questions/790 ... dows-forms
Мобильная версия