C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.88573 の関連記事表示

<< 0 >>
■88573  MDIアプリケーションでラジオボタンの挙動がおかしい
□投稿者/ おくやふ -(2018/09/08(Sat) 17:35:32)

    分類:[.NET 全般] 


    MDIアプリケーションを新規作成し、
    子ウインドウを二つ生成します。

    そして片方のウインドウにラジオボタンを生成します。

    この状態でプログラムを起動し、
    ラジオボタンを押し、ラジオボタンにフォーカスが合った状態にします。
    次にもう一つのフォームを一度クリックした後、
    再度のラジオボタンが配置されたフォームのどこかをクリックすると
    そのラジオボタンがクリックされたものとして反応してしまい
    チェックが反転してしまいます。
    もしラジオボタンを押した場合には、二度押しされた状態となり
    元のチェック状態に戻ってしまいます。

    この現象はラジオボタンだけ見られるもので
    通常のボタンだとみられません。

    また、SDIでも見られない現象です。

    これは一体なぜなのでしょうか?

    自分で作成したプログラムもアップしましたので
    試していただけないでしょうか?

    http://fast-uploader.com/file/7091951192361/
    Pass: 123456





親記事 /過去ログ152より / 関連記事表示
削除チェック/

■88578  Re[1]: MDIアプリケーションでラジオボタンの挙動がおかしい
□投稿者/ 魔界の仮面弁士 -(2018/09/08(Sat) 19:49:53)
    No88573 (おくやふ さん) に返信
    > 自分で作成したプログラムもアップしましたので
    > 試していただけないでしょうか?
    > http://fast-uploader.com/file/7091951192361/
    > Pass: 123456

    有効期限のあるストレージだと、質問内容が過去ログ倉庫に流れた後で
    保持期限が切れて見えなくなってしまう可能性が高いのが残念なところですね…。



    > そして片方のウインドウにラジオボタンを生成します。
    「ラジオボタンが一つしか無い状態」であることが、そもそも画面設計として間違っています。
    RadioButton は、「どれも選択されていない状態」の表現には向きません。

    確かに、AutoCheck を False にすることで、選択状態を自己管理できなくは無いのですが、
    RadioButton は、複数(通常は2個以上8個未満)の排他的な選択肢から、
    1 つだけを選択するために使用する場合に使用されるべきものです。

    今回のようにトグルボタン的に使用したいのであれば、RadioButton ではなく
    CheckBox の利用を検討してください。こちらも Appearance を Button に変更できます。


    > If .Checked = True Then
    >   .Text = "ON"
    >   .BackColor = Color.Red
    > Else
    >   .Text = "OFF"
    >   .BackColor = Color.Blue
    > End If

    上記のような表現は、Windows のデザインガイド的には非推奨とされています。
    https://msdn.microsoft.com/ja-jp/library/aa511488.aspx
    https://msdn.microsoft.com/ja-jp/library/aa511452.aspx

    On/Off でトグル表示されるボタンの Text は、Windows の統一的な仕様において
     『そのチェック ボックスがオンのときの状態を説明するもの』と
    することが望ましいとされています。

    これはトグルボタンのテキストが「現在の状態を表す」のか、
    それとも「ボタンを押すことでその状態になることを表す」のかが
    アプリケーションによって曖昧になってしまうことを防ぐための、
    統一された標準的なデザイン仕様です。




    > ラジオボタンを押し、ラジオボタンにフォーカスが合った状態にします。
    > 次にもう一つのフォームを一度クリックした後、
    > 再度のラジオボタンが配置されたフォームのどこかをクリックすると
    > そのラジオボタンがクリックされたものとして反応してしまい
    > チェックが反転してしまいます。

    (1) コンテナ内の RadioButton がすべて非チェック状態である
    (2) その中のいずれかの RadioButton がフォーカスを持っている
    (3) そのフォームは非アクティブ状態である

    この条件を満たしている状態で、フォームがアクティブ状態になると、
    フォーカスを持っていたラジオボタンが、自動的にチェック状態に遷移しようとするためです。

    先に述べた通り、ラジオボタンは「2 つ以上の選択肢のいずれか 1 つ」が
    選択される状態を表現するものです。UI 設計を見直されることをお奨めします。
記事No.88573 のレス /過去ログ152より / 関連記事表示
削除チェック/

■88579  Re[2]: MDIアプリケーションでラジオボタンの挙動がおかしい
□投稿者/ おくやふ -(2018/09/08(Sat) 21:00:17)
    そうだったのですね・・・
    トグルボタンで検索するとラジオボタンを使った方法しか見つからなかったので
    疑いなくこれを使っていました。

    いまチェックボックスを使った方法も試してみたのですが
    これだと、文字数と文字サイズでボタンのサイズが決まってしまうため、
    ボタンを押すことで、文字数が変わるので
    ボタンサイズも連動して変化してしまうのですが・・・・

    文字によらず、ボタンサイズを設定することはできないのでしょうか?
記事No.88573 のレス /過去ログ152より / 関連記事表示
削除チェック/

■88580  Re[3]: MDIアプリケーションでラジオボタンの挙動がおかしい
□投稿者/ Hongliang -(2018/09/08(Sat) 21:16:24)
    AutoSizeプロパティをfalseにしてやればいいです。
記事No.88573 のレス /過去ログ152より / 関連記事表示
削除チェック/

■88581  Re[4]: MDIアプリケーションでラジオボタンの挙動がおかしい
□投稿者/ おくやふ -(2018/09/08(Sat) 21:28:22)
    どうもありがとうございます。
記事No.88573 のレス / END /過去ログ152より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -