Отключить клавишу Tab в datagridview - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь отключить клавишу табуляции в datagridview, а также создать свое собственное событие на нем.Также, если есть возможность отключить вверх, вниз, вправо, влево и ввести ключ.Событие OnLoad

this.dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;

On KeyDownEvent

 private void gridInvoice_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Tab)
        {
            //SelectNextControl(dataGridView1, true, true, true, true);
            // or Parent.SelectNextControl() if the grid is an only child, etc.
            e.Handled = true;
        }

    }

С кодом над клавишей Tab это работает.Я переезжаю в следующую камеру.Как я могу предотвратить это?

1 Ответ

0 голосов
/ 14 февраля 2019

Вы должны использовать событие PreviewKeyDown вместо KeyDown.

В соответствии с Microsoft Control.PreviewKeyDown Описание события

Некоторые нажатия клавиш, такие как TABКлавиши RETURN, ESC и стрелки, как правило, игнорируются некоторыми элементами управления, поскольку они не считаются нажатиями клавиш ввода.

Вам необходимо вставить приведенный ниже код в событие PreviewKeyDown, если вы хотите использовать событие KeyDownпри нажатии Tab.

if (e.KeyCode == Keys.Tab) { e.IsInputKey = true; }

Когда в режиме редактирования спасибо Jimi

Извините, я подумал, что проблема слишком простая.Как насчет этого.Вы можете переопределить ProcessCmdKey, чтобы игнорировать Tab, когда вы находитесь в режиме редактирования вашего DGV.Это слишком грубо?Я думаю, что это проще, чем создать новый элемент управления для редактирования, но не элегантность.

    protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
    {
        if (keyData == Keys.Tab && dataGridView1.EditingControl != null) { return true; }
        else return base.ProcessCmdKey(ref msg, keyData);
    }

из Аналогичная проблема

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