Как сделать, Вводят в действие TextBox как в кнопку TAB

20
задан Behnam 9 February 2015 в 12:03
поделиться

5 ответов

Можно записать на keyDown любого управления:

        if (e.KeyCode == Keys.Enter)
        {

            if (this.GetNextControl(ActiveControl, true) != null)
            {
                e.Handled = true;
                this.GetNextControl(ActiveControl, true).Focus();

            }
        }

GetNextControl не работает над Vista.

, Чтобы заставить его работать с Vista необходимо будет использовать код ниже для замены этого. GetNextControl...:

System.Windows.Forms.SendKeys.Send("{TAB}");
11
ответ дан 29 November 2019 в 23:53
поделиться

Взятие произвольного предположения:

// on enter event handler
parentForm.GetNextControl().Focus();
-1
ответ дан 29 November 2019 в 23:53
поделиться

Я объединил бы то, на что Pharabus и arul ответили как это:

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ‘\r’)
{
e.Handled = true;
parentForm.GetNextControl().Focus()
}
}

Сообщенный мне, если это помогает! JFV

-1
ответ дан 29 November 2019 в 23:53
поделиться

Вы не должны делать, "вводят обработчик событий"

Все, что необходимо сделать, делают "центральное" событие KeyDown:

пример

private void General_KeyDown(object sender, KeyPressEventArgs e)
 {
 if (e.KeyCode == Keys.Enter)
        {

            if (this.GetNextControl(ActiveControl, true) != null)
            {
                e.Handled = true;
                this.GetNextControl(ActiveControl, true).Focus();
            }
        }
}

Затем все, что необходимо сделать, является движением к выбору разработчика все текстовые поля, которые Вы хотите циклически повторить через с EnterKey (выберите их удержанием Ctrl и текстового поля нажатия с мышью), затем перейдите к Событиям (кнопка Мне нравится грома), поисковому событию Keydown и типу в General_KeyDown. Теперь все Ваши выбранные Текстовые поля будут иметь то же keydown событие :) This, делает все muuuuch намного легче, причина воображают форму с 100 текстовыми полями, и Вы хотите циклически повториться через все с, вводят.... создание независимо, событие для каждого texbox является... хорошо не надлежащим способом сделать программу, это не аккуратно. Надеюсь, что это помогло!!

Блок цитирования

4
ответ дан 29 November 2019 в 23:53
поделиться

Для тех из вас, кто использует код в vb ...

Public Class NoReturnTextBox
    Inherits System.Windows.Forms.TextBox

    Const CARRIAGE_RETURN As Char = Chr(13)

    ' Trap for return key....
    Private Sub NoReturnTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

        If e.KeyChar = CARRIAGE_RETURN Then
            e.Handled = True
            System.Windows.Forms.SendKeys.Send(vbTab)
        End If

    End Sub

End Class
0
ответ дан 29 November 2019 в 23:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: