DatagridViewには、データバインドされたチェックボックス列があります。しかし、複数のチェックボックスをオンまたはオフにすると、すべての変更が保存されるわけではありません。(すべてのプロパティ Set メソッドをトリガーするわけではありません。おそらく 2 番目ごとにトリガーされます)。ただし、チェックボックスをクリックするたびに、次のチェックボックスの前に別のセル (列) をクリックすると、すべてのアクションが Set メソッドをトリガーします。したがって、セルの検証はセルごとではなく、列ごとに機能するようです(チェックボックス列の場合)。では、これをどのように解決しますか?
2809 次
2 に答える
3
答えが見つかりました: DataGridView with CheckBox セルの問題
しかし、おそらくより簡単な方法は、保存ボタン メソッドを挿入することです。
DataGridView.EndEdit();
于 2011-01-21T22:58:16.103 に答える
0
あなたが何を試し、何がうまくいかないのかははっきりしていません。Winform アプリケーションがあり、SqlDataSource を使用して SQL Server テーブルをグリッドにバインドしているとします。データベースには boolean(bit) フィールドがあるため、グリッドは自動的に DataGridViewCheckBoxColumn を生成します。ユーザーが保存ボタンをクリックしたときに行ったすべての変更を保存しようとしています。
これらの推測はすべて正しいですか?
データセット/データテーブルを dataadapter で更新するだけです。
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 の例: http://msdn.microsoft.com/en-use/library/fbk67b6z.aspx
変更をデータベースに直接保存する必要がある場合は、BindingSourceのCurrentItemChanged イベントを処理できます。
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
于 2011-01-21T21:36:13.057 に答える