DataGridView / Enter Key? - PullRequest
       8

DataGridView / Enter Key?

3 голосов
/ 17 ноября 2009

Я использую vb.net 2008 и DataGridView.Я ищу код, который позволит мне перемещать клавишу enter к следующему столбцу справа, а не перемещаться вниз на одну строку, оставаясь в том же столбце.

Ответы [ 2 ]

6 голосов
/ 18 ноября 2009

Если вы подтверждаете редактирование, просто перейдите к следующему столбцу в событии CellEndEdit. Если вы не в режиме редактирования, вам необходимо переопределить ProcessDialogKey. Смотрите пример ниже:

public class dgv : DataGridView
{
    protected override bool ProcessDialogKey(Keys keyData)
    {
        Keys key = (keyData & Keys.KeyCode);
        if (key == Keys.Enter)
        {
            return this.ProcessRightKey(keyData);
        }
        return base.ProcessDialogKey(keyData);
    }
    protected override bool ProcessDataGridViewKey(KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            return this.ProcessRightKey(e.KeyData);
        }
        return base.ProcessDataGridViewKey(e);
    }
}
4 голосов
/ 17 ноября 2009

Вот статья CodeProject, которая показывает, что вы хотите сделать:

Обман DataGridView

Это C #, но это также довольно просто.

Обсуждаемый в статье подход заключается в создании подкласса DataGridView для переопределения события ProcessDialogKey для обработки логики выбора следующей ячейки в той же строке или переноса в первый столбец в следующей строке.

Большинство подходов к выполнению того, что вы хотите сделать, включают создание подкласса DataGridView.

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