вернуться на одну вкладку указатель - PullRequest
1 голос
/ 05 февраля 2012

, вероятно, простое, имеет дюжину текстовых полей, каждое из которых содержит один символ.я пытаюсь обработать клавишу удаления, чтобы очистить текущий текст в текущем текстовом поле, затем я хочу, чтобы он уменьшил индекс вкладки, вернувшись и вернувшись, чтобы отредактировать предыдущее текстовое поле.я не знаю, как ссылаться на индекс табуляции текущего текстового поля и вернуться назад.чтобы перейти к следующему, я просто выполняю клавишу отправки для «TAB».

в моей функции обработки ключей у меня есть:

//DEL goes back one text box and clears it
            if (keyData == (Keys.Delete))
            {
                //Clear textbox
                //Go back one textbox to edit
                return true;
            }

снова, как только я закончил редактирование текстового поля, яотправляю:

 SendKeys.Send("{TAB}");

возможно есть лучший способ сделать это.

1 Ответ

2 голосов
/ 05 февраля 2012

Вы можете найти предыдущие TextBox с помощью метода GetNextControl :

if (e.KeyCode == Keys.Delete)
{
    var textBox = ((TextBox) sender);
    textBox.Text = string.Empty;

    var previous = textBox.Parent.GetNextControl(textBox, false);
    if (previous != null)
        previous.Focus();

    e.Handled = true;
}

Или, как @Mr Lister предложил, вы можете отправить комбинацию клавиш SHIFT + TAB с помощью:
SendKeys.Send("+{TAB}"); но это немного хакерское решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...