タイトル | : DataGridViewでRowsプロパティに項目を追加したい |
記事No | : 6405 |
投稿日 | : 2007/10/04(Thu) 17:33 |
投稿者 | : う〜 |
VB2005です。 カスタムグリッドを作成しています。
DataGridViewの行ごとにフラグを持たせたいと考えています。 隠し列を持つのではなくプロパティのような形で追加できないかと考えています。
ここでいうフラグとはセルに対して入力に変更があったかどうかを保持しておくために使用します。 (5行目のセルに対して値が変更されれば1を立てるとか)
Rowsプロパティをオーバーロードして、フラグを追加したDataGridViewRowを作成しましたが、 「型 'System.Windows.Forms.DataGridViewRow' のオブジェクトを型 'WindowsApplication1.DataGridViewRow2' にキャストできません。」 とエラーが出てしまいます。
実行時エラーです。コンパイルは通ります。
そもそも考え方が間違っているのでしょうか? よろしくお願いします。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.DataGridViewEx1.RowCount = 10
For intloop As Integer = 0 To Me.DataGridViewEx1.RowCount - 1 Me.DataGridViewEx1.Item(0, intloop).Value = Me.DataGridViewEx1.Rows(intloop).Status Next
End Sub
End Class
*************************以下カスタムコントロールの再現ソースです。************************* Public Class DataGridViewEx Inherits DataGridView
Public Overloads ReadOnly Property Rows(ByVal rowIndex As Integer) As DataGridViewRow2 Get Return CType(MyBase.Rows(rowIndex), DataGridViewRow2) '←ここでエラー発生 End Get End Property
End Class
Public Class DataGridViewRow2 Inherits System.Windows.Forms.DataGridViewRow
Sub New() Me._Status = "0" End Sub
Private _Status As String
Public Property Status() As String Get Return _Status End Get Set(ByVal value As String) _Status = value End Set End Property
End Class ************************************ソース終わり************************************
|