Как отслеживать всякий раз, когда значение ячейки изменяется в DataGridView? - PullRequest
7 голосов
/ 27 августа 2010

Это вопрос WinForms C #.

У меня есть настроенный элемент управления DataGridView, унаследованный от стандартного класса DataGridView.Я хочу отслеживать случай, когда ячейка добавляется в сетку, значение ячейки изменяется в сетке.Я понятия не имею, как это сделать.

Событие DataBindingCompleted беспомощно на уровне ячейки / строки / столбца.Событие CellValueChanged сбивает с толку само по себе, поскольку оно вызывается только тогда, когда пользователь изменяет значение из пользовательского интерфейса, и беспомощно, если значение обновляется из основного источника данных.Какое событие нужно слушать?

Я знаю, что класс DataGridViewCell имеет событие ValueChanging.Но в настраиваемом DataGridView, как я могу подключить мой слушатель событий к каждой ячейке?

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 29 августа 2013

1 、 Вы можете наследовать DataGridView при настройке DataGridView. Если наследовать UserControl для настройки DataGridView, вы не можете напрямую получить событие CellValueChanged при создании настраиваемого DataGridView в другом проекте или приложении.

2 、 Чтобы сделать что-то вCellValueChanged.

3 、 Наследовать объект DataGridView.

(1) Создать UserControl.Name - это DataGridViewEx.

(2) Изменить наследовать.public partial class DataGridViewEx : UserControl ==> public partial class DataGridViewEx :DataGridView

(3) Открыть DataGridViewEx.Designer.cs и щит //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;. Предложение находится в методе InitializeComponent ().

0 голосов
/ 27 августа 2010

В вашем пользовательском элементе управления вам нужна глобальная переменная события:

public event EventHandler CustomCellValueChanged;

, вам нужно установить событие изменения ячейки следующим образом:

    private void gvGridView_CellValueChanged(object sender, EventArgs e)
    {
        EventHandler Handler = CustomCellValueChanged;
        if (Handler != null) { Handler(this, e); };
    }

Затем в вашей форме высможет проверить событие CustomCellValueChanged

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