DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridのチェックボックスのイベントは?

環境/言語:[WIN2000]
分類:[.NET]

2004/09/14(Tue) 18:21:13 編集(投稿者)

DataGridのなかに、列AはDataGridBoolColumnを使うとチェックボックスは表示されます。

列Aをクリックすると、隣の列Bの値を変わりたいです。
DataGridのチェックボックスのイベントは使えますか?
如何すればいいですか?

よろしく。
2004/09/16(Thu) 20:00:33 編集(投稿者)

■No6147に返信(johnさんの記事)

 johnさん、こんばんは。深山です。

> DataGridのなかに、列AはDataGridBoolColumnを使うとチェックボックスは表示されます。
>
> 列Aをクリックすると、隣の列Bの値を変わりたいです。
> DataGridのチェックボックスのイベントは使えますか?
> 如何すればいいですか?

 少し調べたところ、次のような書込みを見つけました。

(Win)DataGridのチェックボックスについて
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9380&forum=7&3

 この方は DataGrid を継承したクラスで ColumnStartedEditing メソッドをオーバーライド
することで目的を達したそうです。


 ただ、試してみた感じでは
1. 『列 A がクリックされてチェック状態が変更された』ことは検出できても
  『その結果チェックされているのか、されていないのか』という判断はできない
2. Esc キー操作によってチェック状態が復元したことを検出できない
という問題があるようでした。

 DataGridBoolColumn クラスには currentValue というプライベート フィールドがあり、
チェック状態を保持しています。この値を取得することで問題 1 は解決できそうです。
 2 の方は‥‥DataGridBoolColumn を継承したクラスで Abort メソッドをオーバーライドして
やらないと無理かな? ちょっと他に思いつきませんでした。

 参考になれば幸いです。



# ‥‥と色々書いてから思ったこと。
# ひょっとして要件的には列 B の DataColumn.Expression プロパティを設定するだけで
# 十分だったかも?
# リアルタイムで更新する必要性は薄そうだよなぁ orz



■追記

# そして過去ログを見つける‥‥(ほろほろ)
DataGrid内のCheckBoxのイベントを捕まえるには?
http://dobon.net/vb/bbs/log3-3/1795.html
深山さん、ありがとうございました。

>
> ■追記
>
> # そして過去ログを見つける‥‥(ほろほろ)
> DataGrid内のCheckBoxのイベントを捕まえるには?
> http://dobon.net/vb/bbs/log3-3/1795.html

すみません。私も検索しましたが、見つかりませんでした。
多分、検索の方法が間違いました。今度注意します。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板