DataGridでのセルの値の察知
- 題名: DataGridでのセルの値の察知
- 著者: たけ
- 日時: 2007/08/23 17:40:02
- ID: 20329
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: DataGridでのセルの値の察知
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2007/08/24 2:56:26
- ID: 20331
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: DataGridでのセルの値の察知
- 著者: たけ
- 日時: 2007/08/24 14:29:08
- ID: 20339
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつも参考にさせていただいております。
基本的なことだと思うのですが、よくわからないので質問させてください。
ある「abc.mdb」のテーブル「xyz」をDataGridに読み込んで表示させています。
行いたい処理:あるセル(例えば2,2)の値を書き換えたときにその入力された値を取得
して別のセルの値を書き換えたい。
おそらく、フォームロードしたときに、イベントハンドラを追加して、TextBoxの値を取得すれば良いと考えていますが、下記のソースで行うとDataGridTableStyleを指定する際にエラーが発生してしまいます。
対処方などご存知の方がいらっしゃいましたらアドバイスをお願い致します。
プログラム
===================================================================
Private cn As Data.OleDb.OleDbConnection
Private da As Data.OleDb.OleDbDataAdapter
Private cmd As Data.OleDb.OleDbCommand
Private prm As Data.OleDb.OleDbParameter
Private ds As DataSet
Private Sub frm_ReturnCard_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreateDataSet() '← OledbのInsert/Update/Deleteを指定
'読み込み
Try
cn.Open()
ds.Clear()
da.Fill(ds, "xyz")
cn.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
'DataGrid1に表示
DataGrid1.SetDataBinding(ds, "xyz")
'データグリッドのテキストの変更を察知するためにハンドルを追加する
Dim ts As DataGridTableStyle
ts = DataGrid1.TableStyles("xyz")
'tsがNothingになってしまう
'DataGridTextBoxColumnの取得
Dim cs As DataGridTextBoxColumn = _
CType(ts.GridColumnStyles(2), DataGridTextBoxColumn)
'※↑ここでエラーが発生します
'「System.NullReferenceException:オブジェクト参照がオブジェクト インスタンスに設定されていません」
'TextBoxの取得
Dim tb As TextBox = cs.TextBox
'TextChangedイベントハンドラを追加
AddHandler tb.TextChanged, AddressOf tb_TextChange
End Sub
Private Sub tb_TextChange(ByVal sender As Object, ByVal e As System.EventArgs)
'処理
End Sub
===================================================================