Top > プログラミング > .NET Tips> DataGridViewの列にチェックボックスを表示する

DataGridViewの列にチェックボックスを表示する」への評価、コメント

評価

良い / 悪い = 53 / 10 (「良い」の割合 = 0.841 , 人気度 = 1.513

評価する

コメント一覧


通常のコメント
C子 2017/11/30 (Thu) 14:01:42
CurrentCellDirtyStateChangedイベントとCellValueChangedイベントを組み合わせると、一回のチェックで、CellValueChangedイベントが複数回と呼ばれ、チェックするたびに数十回~やがて数百回と増えていきます。(ループというわけではないようです)CellValueChangedイベントの中でDatagridViewの操作(Cellの値の変更含む)はしていません(2回目以降のCellValueChangedイベントは、CellValueChangedイベント内からではなく、CellValueChangedイベントが終了してから再度呼ばれる)
同様の事象に遭遇した方はいませんでしょうか?

.NET Frameworkのバージョンによる違い
匿名 2017/10/20 (Fri) 12:20:15
スペースキーでの変更時に例外が起こる対策を見つけました。デリゲートでCommitEditを遅延させる必要があるようです。
https://connect.microsoft.com/VisualStudio/feedback/details/780347/nullreferenceexception-in-notifymassclient-after-checking-unchecking-a-checkbox-in-datagridview-with-spacebar

Delegate Sub InvokeDelegate()

Private Sub MyDelegate()
Me.DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
End Sub

Private Sub DataGridView1_CurrentCellDirtyStateChanged(ByVal _sender As Object, ByVal _e As EventArgs)
If Me.DataGridView1.CurrentCellAddress.X = 0 AndAlso
Me.DataGridView1.IsCurrentCellDirty Then
'コミットする
BeginInvoke(New InvokeDelegate(AddressOf MyDelegate))
End If
End Sub

通常のコメント
yama 2016/03/18 (Fri) 11:32:40
キーボードのスペースキーでチェック状態を変更すると、例外が発生します。
.net framework 4.6 です。
バージョン違いでしょうかね?

評価の理由
カンチ 2013/11/20 (Wed) 21:26:35
評価:良い
チェックボックスが表示されなくて半日つぶした結果、行の高さが低すぎて見えてなかったというオチでした。(;;)
後から表にチェックボックスを追加することになったんですが、その前の表は1行でも多く表示するためにギリギリまで行高さを削っていたのが敗因。orz

評価の理由
ddfd 2013/09/5 (Thu) 10:52:29
評価:良い
いいね ありがとう!

通常のコメント
まきのスケイル 2013/05/16 (Thu) 16:41:43
コンボボックスの値を変更した時にイベントが拾えずに困っていました。
例はチェックボックスですがコンボボックスにも応用出来、非常に参考になりました。

評価の理由
匿名 2011/06/22 (Wed) 17:39:48
評価:良い
チェックボックスの変更が反映されなくて困ってました。
助かりました。

通常のコメント
ちくわ 2011/06/17 (Fri) 13:49:20
キター(゚∀゚)

評価の理由
ダホン 2011/02/15 (Tue) 15:55:27
評価:良い
とても良いサンプルでした。参考になりました。

評価の理由
匿名 2011/02/12 (Sat) 02:14:52
評価:良い
わかりやすいです!

通常のコメント
管理人 2010/11/30 (Tue) 01:19:50
> チェックボックスセルのValueTypeが、常にNothingとなっており、上記のプログラムでポップアップがでません。

非バインド列として追加したときは、列のValueTypeがNothingとなるかもしれません。その場合は、ValueTypeで判断しないでください。分かりにくいようですので、CellValueChangedイベントハンドラで列がbool型か調べる部分は削除したいと思います。

通常のコメント
初級SE 2010/09/21 (Tue) 10:48:23
チェックボックスセルのValueTypeが、常にNothingとなっており、上記のプログラムでポップアップがでません。
どうしたらよいのでしょうか?

評価の理由
Deer 2010/04/2 (Fri) 10:21:07
評価:良い
最終行のチェックボックス変更が反映されず困ってました。
大変助かりました。

評価の理由
ekiryu 2009/09/18 (Fri) 17:20:26
評価:良い
CurrentCellDirtyStateChangedを気がつかなかったので、助かりました。

評価の理由
グリッド初心者 2008/11/30 (Sun) 17:38:54
評価:良い
とても参考になりました。
感謝しております。

評価の理由
匿名 2008/10/6 (Mon) 19:44:28
評価:良い
ありがとー!

コメントの投稿

[説明]