Переопределение DataGridViewTextBoxCell и CellPainting - PullRequest
0 голосов
/ 17 декабря 2009

Я унаследовал DataGridViewTextBoxCell, потому что мне нужно добавить к нему какое-то пользовательское свойство.

Во время выполнения после создания экземпляра DataGridView и привязки данных я делаю следующее:

For k As Integer = 0 To grid.Columns.Count - 1
                grid.Columns(k).AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
                If k > 0 Then grid.Columns(k).CellTemplate = New CustomCell()
Next

с попыткой добавить к каждому столбцу, отличному от первого, CustomCell.

Проблема в том, что когда я присоединяюсь к событию CellPainting сетки и делаю

If e.ColumnIndex < 0 OrElse e.RowIndex <= 0 Then Return

Dim grid As DataGridView = TryCast(sender, DataGridView)
If grid Is Nothing Then Return
If grid.Columns.Count < e.ColumnIndex OrElse grid.Rows.Count < e.RowIndex Then Return

Dim cell As CustomCell = TryCast(grid(e.ColumnIndex, e.RowIndex), CustomCell)
If cell Is Nothing Then Return

тип ячейка никогда не имеет типа CustomCell , но остается DataGridViewTextBoxCell .

У вас есть идеи, как мне решить эту проблему?

Я работаю с VS2008 и Framework 3.5

1 Ответ

0 голосов
/ 17 декабря 2009

Полагаю, вы хотите добавить пользовательский столбец. Вот статья, которую я считаю полезной - Code Magazine .

...