質問

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top