SendKeys {SUBTRACT} не работает

Я искал в Интернете и на этом веб-сайте какие-либо подсказки, чтобы решить мою проблему, но не нашел. У меня есть метод, который ожидает строку, а затем выполняет SendKeys.SendWait(str). Все работает так же, как ввод "{ENTER}" или обычный текст.

Но! Если я передам "{SUBTRACT}", это просто не сработает. Я также пытался передать ASCII-презентацию ключа, но он выдал исключение, что он не поддерживается.

Я также пробовал просто делать SendKeys.Send("{SUBTRACT}") - никаких результатов.

Просто ничего не делает. Однако, когда я нажимаю кнопку минус на клавиатуре или в верхней части клавиатуры - функциональность работает.

Обратите внимание, что это использует Windows Automation Framework. Может быть, это и является причиной проблемы. У кого-нибудь были такие же проблемы?


person Widunder    schedule 27.05.2014    source источник
comment
Добро пожаловать в Stack Overflow Алина. Можете ли вы опубликовать свой код, где у вас есть оператор SendKeys.Send("{SUBSTRACT}")? Итак, мы можем отладить его.   -  person Shell    schedule 27.05.2014
comment
Привет спасибо! Но это все, что он делает на самом деле. У меня есть свое приложение - не внешнее. И есть ultraGrid, который принимает клавиши - и + для развертывания/свертывания строк. Все, что делает моя автоматизация - выбирает строку, а затем использует SendKeys.SendWait({SUBTRACT}); чтобы, надеюсь, расширить ряд. Но он просто не делает этого вообще   -  person Widunder    schedule 27.05.2014
comment
Итак, вы хотите расширить узел сетки при нажатии клавиши Subtract? Я пробовал оператор SendKeys.Send("{SUBTRACT}"). Я выполнил эту строку при нажатии кнопки, и я получил -, написанный в моем Textbox. Итак, в моем случае это сработало. позвольте мне попытаться обработать событие Subtract KeyDown и вызвать для него любой конкретный метод.   -  person Shell    schedule 27.05.2014
comment
Это приложение для Windows?   -  person Shell    schedule 27.05.2014
comment
Попробуйте использовать его в UltraGrid и посмотрите, не возникнет ли у вас такой же проблемы. Может быть, это элемент управления ultraGrid. И очень ценю вашу помощь!   -  person Widunder    schedule 27.05.2014
comment
Я отредактировал ваш заголовок. См. Должны ли вопросы включать «теги» в свои заголовки?, если нет единого мнения, не следует.   -  person John Saunders    schedule 27.05.2014


Ответы (1)


Я попытался показать окно сообщений в событии Subtract KeyDown. Я отправил ключ Subtract в событие нажатия кнопки. Но убедитесь, что вы включили свойство KeyPreview своей формы Windows.

private void button1_Click(object sender, EventArgs e)
{
    SendKeys.Send("{SUBTRACT}");
}

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Subtract)
        this.UltraGrid1.Rows.CollapseAll(true);
}
person Shell    schedule 27.05.2014
comment
Большое спасибо! Это сработало! Я все еще удивляюсь, почему расширение отдельных строк не работает для меня. Но это нормально :) определенно решение :) Спасибо! - person Widunder; 27.05.2014