重写DataGridViewTextBoxCell和CellPainting

时间:2009-12-17 17:49:16

标签: vb.net datagridviewtextboxcell

我继承了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 :(得分:0)

我相信您要添加自定义列。以下是我认为可能有用的文章 - Code Magazine