Определить функцию Shift + Tab в Backspace - PullRequest
1 голос
/ 21 сентября 2010

Использование программного обеспечения: C #, VS-2005

Возможно ли переопределить функцию / метод Shift + Tab или обнаружить функцию Shift + Tab и использовать ее с помощью Backspace .?

In Shot replaceShift + Tab с функцией Backspace.И тогда Backspace будет вести себя как Shift + Tab:

Возможно ли это в C #?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2010

Полагаю, вы работаете над выигрышной формой.Зарегистрируйте событие нажатия клавиши:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Tab && e.Shift)
    {
        // act like a backspace is pressed
    }
    else if (e.KeyCode == Keys.Back)
    { 
       SendKeys.Send("+{TAB}");   // simualte a shift-tab press
    }
}

Чтобы решить проблему @ liggett78, упомянутую в комментарии, вы можете установить

form.KeyPreview = true;

для обработки всех ключевых событий дочерних элементов управления в KeyDown.Событие с.

РЕДАКТИРОВАТЬ: Чтобы предотвратить удаление символа в текстовом поле при нажатии BACKSPACE, вы можете:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Back)
    {
        e.SuppressKeyPress = true;
        SendKeys.Send("+{TAB}"); 
    }
}
0 голосов
/ 21 сентября 2010

Переопределите ProcessDialogKey или ProcessTabKey в вашей форме.

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