Переопределить класс datagridview

#c#

#c#

Вопрос:

Я хочу переопределить класс datagridview, например переопределить bool ProcessDialogKey и ProcessDataGridViewKey. в какой форме я должен написать этот код, чтобы он работал?

Ответ №1:

Я не уверен, что вы имеете в виду, какую форму вы должны использовать, но вы можете расширить DataGridView в классе, например, так:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyTest
{
    class MyDataGridView : DataGridView
    {

        protected override bool ProcessDialogKey(Keys keyData) {
            // Your implementation here.
        }

        protected override bool ProcessDataGridViewKey(KeyEventArgs e) {
            // Your implementation here.
        }
    }
}
  

Этот код создает новый класс, MyDataGridView который наследуется от стандартного класса Winform DataGridView . Вы можете прочитать больше о наследовании здесь.

Комментарии:

1. я имею в виду, что я использую datagridview в форме. должен ли этот код быть в форме tht или как можно создать ссылку на этот класс, если он существует снаружи.

2. как ссылаться на этот класс в нашей форме?

3. Создайте этот класс и используйте его в своей форме

4. Вы можете найти определение представления datagrid в designer.cs form и изменить его объявление на MyDataGridView

5. Проще всего было бы создать класс (ваш элемент управления) в том же проекте, что и ваша форма. Затем элемент управления должен появиться на панели инструментов, из которой вы можете добавить его в свою форму. Вы всегда можете ссылаться на элемент управления, как на любой другой класс ( var myDataGridView = new MyDataGridView(); ).