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

DataGridComboBoxColumnのReadOnlyについて

環境/言語:[WinXP Pro、VB.NET2003 、ACCESS2002、.NET Framework1.1]
分類:[.NET]

連続投稿で申し訳ございません。

DataGrid上でコンボボックスを表示するのに、ここで紹介されているDataGridComboBoxColumnを使わせていただき、無事に表示することが出来たのですが、実はその列をReadOnlyに設定したいのですが出来ません。

具体的にはColumn1.ReadOnly = Trueにしても、実行時にコンボボックスが表示されデータも変更されてしまいます。

本来ならSelectCmmandで直接コンボボックスの表示内容を取得すればいいのかも知れませんが、DataAdapterを使い回ししているため出来ればSelctCommandをいじりたくありません。
どこか設定の仕方が間違っているのでしょうか?
申し訳ないのですがよろしくお願いします。
> 本来ならSelectCmmandで直接コンボボックスの表示内容を取得すればいいのかも知れませんが、DataAdapterを使い回ししているため出来ればSelctCommandをいじりたくありません。

 使い回しているのは DataAdapter だけで DataSet なりは別々なのでしょうか?
 であれば(そうでなくても特に問題がないようであれば)、ダミーの DataColumn を追加して Expression プロパティを設定することでも対処できるかも知れません。
# IIF をネストさせることになるので対応させる項目が多いとちょっと‥‥ですけど(^_^;)


> どこか設定の仕方が間違っているのでしょうか?

 気になったので試してみたところ、こちらでもコンボ ボックスは表示されました。
#尤も、確認したのは .NET Freamwork 1.0 上ですが。

 どうやら ReadOnly プロパティを True に設定していても、 Edit メソッドの第四引数 ( readOnly ) には False が渡されるようです。
 なので、コンボ ボックスの表示判定をしている箇所で readOnly の替わりに ReadOnly プロパティを用いるようにすれば取り敢えず大丈夫だと思います。
#勿論、動作保証はしません :-p
確かにそうでした。気が付きませんでした。

Editメソッドの

If cellIsVisible AndAlso Not [readOnly] Then



If cellIsVisible AndAlso Not [readOnly] AndAlso Not Me.ReadOnly Then

としてください(これで大丈夫かな?)。

ご報告ありがとうございました。
深山さん、管理人さんご回答ありがとうございました。

管理人さんの方法で無事表示されないようになりました。

それと自分のスキルが低いため、深山さんのおっしゃることが良く分かりませんでした・・・。
またいろいろ勉強したいと思いますので、また不明な点がありましたらよろしくお願いします。
解決済み!

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