- PR -

RadioButtonをButton表示にすると暗くなる@XP

1
投稿者投稿内容
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2007-06-15 17:22
いつもお世話になっております。
あぶぽんです。

VB2005/Win2000でアプリケーションを開発していますが、
実行環境がWinXPに決定し、今日、テスト実行してみました。

表題のとおり、
RadioButtonのApperanceをButtonにして、ボタン型のラジオボタンを
使用している箇所で問題が発生しました。

ボタン型ラジオボタンのBackColorが他の普通のボタンより少し暗いのです。
(ウィンドウの背景色と同じ色っぽいです。Win2000なら同じ色ですが)

ボタン型ラジオボタンを2つ配置した場合、最初の1つ目が暗くなるようです。

CheckedChangedイベントで、
System.Drawing.SystemColors.Controlに戻してみたり、
他のボタンのBackColorを設定してみたりしましたが変わりありません。

開発環境はWin2000で今はXPが使える環境でないので、
文章ばかりのまどろっこしい説明になってすみません。
(図があれば一目瞭然、暗いです)

上記はボタン型ラジオボタンがチェックされていないときの背景色の話です。

同様の現象を発見された方、解決された方、もしくは解決法を提案して
いただける方のお返事をお待ちしております。

よろしくお願いいたします。

開発環境は以下のとおりです。
実行環境のXPにも同じバージョンの.NET Frameworkが入っています。

| Microsoft Visual Studio 2005
| Version 8.0.50727.42 (RTM.050727-4200)
| Microsoft .NET Framework
| Version 2.0.50727
| インストールされている Edition: Professional
Tesla
常連さん
会議室デビュー日: 2007/03/13
投稿数: 30
投稿日時: 2007-06-16 11:47
引用:
ボタン型ラジオボタンを2つ配置した場合、最初の1つ目が暗くなるようです。


ここでおっしゃっているのはアプリケーション起動直後のことでしょうか?
だとしたら、暗くなっているように見えるのはRadioButtonが選択された状態になっているからではないかと推測します。

RadioButtonにフォーム内で最小のTabIndexが設定されている場合、起動時にそのRadioButtonにフォーカスされるためClickイベントが発生し、選択状態になります。(AutoCheckがTrueの場合)

AutoCheckをFalseにすれば上記の現象は回避することは可能です。
ただしClick時に自動で選択されなくなるので、Clickイベントハンドラで選択状態にするコードを書く必要があります。

RadioButton.AutoCheck プロパティ (System.Windows.Forms)
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.radiobutton.autocheck(VS.80).aspx
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2007-06-19 15:21
J.Hashimotoさん、お返事ありがとうございます。
返答が遅れましたことをお詫びします。

引用:

ここでおっしゃっているのはアプリケーション起動直後のことでしょうか?
だとしたら、暗くなっているように見えるのはRadioButtonが選択された状態になっているからではないかと推測します。



起動直後、も何か操作した後もずっとです。

表示をNormalにしてみたところ、起動直後はRadioButtonは選択されていない
ようでしたので、それではないかと思います。

引用:

RadioButtonにフォーム内で最小のTabIndexが設定されている場合、起動時にそのRadioButtonにフォーカスされるためClickイベントが発生し、選択状態になります。(AutoCheckがTrueの場合)



それも確認しましたが、ないと思います。
RadioButtonグループは複数存在しますし、すべてのグループで同様の現象が起こります。

AutoCheckについての貴重な情報をいただきありがとうございます。
調査してみます。

# 今、VB2005を動かす環境がないところに来てしまっているのですが、
# また、次の仕事でありそうです。
# ちなみに、今回はウィンドウのスタイルをWin2000に変えることで回避しました。
# Vistaではどうなるのか(.Net Framework 3.0?)興味があります。
Tesla
常連さん
会議室デビュー日: 2007/03/13
投稿数: 30
投稿日時: 2007-06-19 23:48
完全に外してましたね。失礼しました。
1

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