掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RadioGroupの初期値書き込みに関して (ID:38864)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphiのラジオボタンには「フォーカスが当たると自動的にチェックが付く」というやや困った性質があります。 普通にマウスやキーボードで操作する分にはフォーカスと選択状態が一致しますが コードから選択状態を変更した場合にはフォーカスが一緒に移動しないため、このような問題が起こることがあります。 仮にRadioGroup1で先頭のラジオボタンを選択しているとしましょう。 RadioGroup1にフォーカスがある状態で、コードから ItemIndex := 1 と設定すると チェックは2番目のラジオボタンに移りますが、フォーカスを表す点線は1番目のボタンに残ったままになると思います。 ここでいったん別のウィンドウに切り替えてから戻ってくると 1番目のラジオボタンにフォーカスが戻るため、そこでチェックも1番目に戻ってしまいます。 回避する方法としては2通り考えられます。 ・コードからItemIndexを変更する際、ActiveControlも適宜変更してやる ・フォームがアクティブになった際、ActiveControl.TabStop=falseだったら FindNextControlを発行して、TabStopのあるところまでフォーカスを動かす
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.