- PR -

C# コンボ、ラジオの使用禁止時の背景色等

1
投稿者投稿内容
匿名希望
常連さん
会議室デビュー日: 2006/12/12
投稿数: 23
投稿日時: 2007-03-03 00:16
C#2003のラジオボタンとコンボボックスについて悩んでいます
ラジオ、コンボとも行い事はほとんど同じです

詳細
 DBより読み込んだデータをコントロールにセット
 コントロールの値は変更できない
 ようにしたいのですが、
 ●ラジオボタン
  グループボックス内のラジオでChecked=falseのラジオが選択されても、
  trueにしない
 ●コンボボックス
  コンボの内容は見えるようにしたいが、値は変更することはできない
 
 単純にEnabledをfalseにすると、コントロールがグレーアウトして、
 非常に見づらいので何か良い方法はないでしょうか?
 結果的には、Enabled=falseでも、
 コンボリストを確認でき
 ラジオボタンの「○」部分の色を指定できれば良いのですが、、、

 結局現状は、ラジオ、コンボとも、
 事前に現在の値を変数に退避させておき
 値の変更が生じたときに、退避させておいた値をセットしなおす
 状態です
 コントロール数が多いので、
 もっと簡単に出来ればうれしいのですが・・・
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-03-03 11:32
引用:

匿名希望さんの書き込み (2007-03-03 00:16) より:

グループボックス内のラジオでChecked=falseのラジオが選択されても、trueにしない


ダミーの RadioButton を Draw してごまかすとか、いろいろ方法はあると思います。

引用:

コンボの内容は見えるようにしたいが、値は変更することはできない


使う人が混乱しそうですが、SelectedIndex を元に戻すようにするのが手っ取り早いと思います。

引用:

単純にEnabledをfalseにすると、コントロールがグレーアウトして、非常に見づらいので何か良い方法はないでしょうか?


以上の方法でどうでしょうか。

引用:

結局現状は、ラジオ、コンボとも、事前に現在の値を変数に退避させておき値の変更が生じたときに、退避させておいた値をセットしなおす状態ですコントロール数が多いので、もっと簡単に出来ればうれしいのですが・・・


「カスタム コントロール」 という存在をご存知でしょうか。
その煩わしさを払拭できるものです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
匿名希望
常連さん
会議室デビュー日: 2006/12/12
投稿数: 23
投稿日時: 2007-03-04 18:06
ご教授ありがとうございます

コンボはユーザコントロールで対応することが出来ました

ラジオに関してですが、
 モードは、
  ・ユーザがコントロールを触れるエディットモード
  ・ユーザがコントロールを触れないリファレンスモード
 があります

1つのラジオが配置されているユーザコントロールを作成し
そのコントロールをフォーム上のグループボックス内に配置すると
リファレンスモード時には問題ないのですが
エディットモード時に
グループ内に配置したラジオ全てにチェックを入れることが出来る(チェックボックスと同じ)ようになってしまいました

グループ内のラジオ全てをユーザコントロールに埋め込んだ形でコントロールを作成しなければならないのでしょうか?
上記を作成することは、仕様上困難なのですが・・・
良い方法ご教授お願いします
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-03-04 23:15
引用:

匿名希望さんの書き込み (2007-03-04 18:06) より:

1つのラジオが配置されているユーザコントロールを作成しそのコントロールをフォーム上のグループボックス内に配置するとリファレンスモード時には問題ないのですがエディットモード時にグループ内に配置したラジオ全てにチェックを入れることが出来る(チェックボックスと同じ)ようになってしまいました


それは、親コンテナが全部バラバラでない時に起こります。

"ユーザーコントロール" というのが文字通り、UserControl からの継承コントロールであれば、当然のことです。
狭義の意味での 「カスタム コントロール」を使いましょう。

引用:

グループ内のラジオ全てをユーザコントロールに埋め込んだ形でコントロールを作成しなければならないのでしょうか?


とありますので、このような回答になりました。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)