DatagridViewチェックボックスコラム検証
-
16-10-2019 - |
質問
で datagridview 私は持っています DataBound CheckboxColumns. 。ただし、複数のチェックボックスをチェックまたはチェックすると、すべての変更が保存されるわけではありません。 (すべてのプロパティセットメソッドをトリガーすることはありません。おそらく2回ごとに)。ただし、各チェックボックスをクリックすると、次のチェックボックスの前に別のセル(列)をクリックすると、すべてのアクションが設定されたメソッドをトリガーします。したがって、セルの検証はセルごとに機能しないように見えますが、列ごとに(チェックボックスコラムの場合)。では、これをどのように解決しますか?
解決
答えを見つけました: チェックボックスセルの問題を備えたdatagridview
しかし、おそらくより簡単な代替手段は、保存ボタンメソッドを入力することです。
DataGridView.EndEdit();
他のヒント
あなたが何を試したか、何がうまくいかないのかは本当に明確ではありません。 Winformアプリケーションがあり、SQLDATASOURCEを使用してSQL-Serverテーブルをグリッドにバインドすると思います。データベースにはブール(ビット)フィールドがあります。したがって、グリッドはDatagridViewCheckBoxColumnを自動的に生成します。ユーザーが保存ボタンをクリックしたときに行ったすべての変更を保存しようとしています。
これらの推測はすべて正しいですか?
あなたがしなければならないのは、データアダプターを使用してデータセット/データテーブルを更新することです。
Private Sub BtnSaveChanges_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSaveChanges.Click
Me.FooTableAdapter.Update(DataSet1.Foo)
End Sub
msd-example: http://msdn.microsoft.com/en-use/library/fbk67b6z.aspx
変更をデータベースに直接保存する必要がある場合は、 currentItemChanged-Event BindingSourceの。
Private Sub FooBindingSource_CurrentItemChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles FooBindingSource.CurrentItemChanged
Dim thisDataRow As DataRow = DirectCast(DirectCast(sender, BindingSource).Current, DataRowView).Row
If thisDataRow.RowState = DataRowState.Modified Then
Me.FooTableAdapter.Update(thisDataRow)
End If
End Sub