掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DataGridViewのチェックボックスについて (ID:146586)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
開発環境: WinXP(SP3) VB2005 Oracle9i DataGridViewにあるテーブルデータを バインドで表示して、チェックボックスの チェックを入れた行のみ更新処理をするものを 作成しています。 そして、11件以上はチェック出来ないように 制御がしたいのですが上手くいきません。 ご教授願います。 上手くいかないのは、11件目をチェックした時に、 エラーメッセージを出力した後にチェックボックスの チェックをコードではずしているのですが、画面の表示 では他のセルに移動しないとチェックが入ったままに なり、他のセルに移動せずにチェックボックスを クリックするとチェックがはずせて再度チェックを 入れると11件以上チェックが出来てしまいます。 -- コード -- Private Sub DataGridView_Tab1_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView_Tab1.CellValueChanged '★☆★☆★ チェックボックス件数 ★☆★☆★ If DataGridView_Tab1.RowCount = 0 Then Exit Sub End If If DataGridView_Tab1(0, e.RowIndex).Value = 1 Then Chk_Count += 1 DataGridView_Tab1("品番ID", e.RowIndex).Style.BackColor = Color.Orange Else Chk_Count -= 1 If e.RowIndex Mod 2 = 0 Then DataGridView_Tab1("品番ID", e.RowIndex).Style.BackColor = Color.White Else DataGridView_Tab1("品番ID", e.RowIndex).Style.BackColor = G_ARGB End If End If If Chk_Count > 10 And Cnt_FLg = True Then MessageBox.Show("11件以上はチェックできません", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) DataGridView_Tab1(0, e.RowIndex).Value = 0 DataGridView_Tab1.CurrentCell = DataGridView_Tab1(2, e.RowIndex) -① End If End Sub Private Sub DataGridView_Tab1_CurrentCellDirtyStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView_Tab1.CurrentCellDirtyStateChanged '★☆★☆★ セル変更コミット ★☆★☆★ If DataGridView_Tab1.CurrentCellAddress.X = 0 AndAlso _ DataGridView_Tab1.IsCurrentCellDirty Then 'コミットする DataGridView_Tab1.CommitEdit(DataGridViewDataErrorContexts.Commit) End If End Sub ※G_ARGBは事前に設定している色です。 -①はチェックの値を0にした後に別のセルに移動すれば解決するかと思い 追加したのですが、これでは永久にエラーメッセージが表示される ようになりうまくいきませんでした。 チェックボックスの画面のチェックを消す方法があればご教授願います。 不足又は不明確なところがございましたらご指摘のほどお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.