2つのオプションボタンを配置しており、
片方のボタンからもう片方のボタンへチェックが移った時のイベントを
取得したいのですがどのようにすればいいのか手詰まりになってしまいました。
Clickイベントでは値をコードから代入した時にも発生してしまいます・・・。
MouseDownやGotForcus等も使ってみましたが上手くいきません。
どなたか知恵をお借りできませんでしょうか・・・
モジュールレベル変数にコードから更新する場合、フラグオンにして
フラグがオフの時のみクリックイベントで処理をするとか…
こう言う場合は実際ボタンが押された場合と、Value=Trueに
場合とで何が違うか考えると意外と簡単かも。たとえば
Dim flg As Boolean
Private Sub Option1_Click()
If flg = False Then Exit Sub
'クリック時の処理
flg = False
End Sub
Private Sub Option1_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
flg = True
End Sub
こんな風に。
返事遅くなり申し訳ありません。
まささんの言われる通り、フラグで解決いたしました。
ねろさんの仰る方法も試してみようと思います。
ただ、今環境が無いので分かりませんがコードを見ていると、
矢印で移動してしまった時やタブでフォーカスを移動してスペースキーを
押した時などでクリックの処理が走らなくなってしまう気が少ししました。
解決チェック入れましたが、試したら又ご報告させていただきます。
解決済みという事なので、それはそれでいいのですが、
矢印でonしたい場合は
Option1_GotFocusにflg=Trueを書きます。
タブでの選択ですが、両方のオプションんボタンの
ValueがOffの場合だけタブで移動した時に
最初のオプションがonになります。
どれかのオプションがonなっていれば
同一コンテナ内ではオプションボタンのタブでの
移動すなわちon offは出来ません。
オプションボタンの場合
フォーカスが当たる=ValueがTrueですから
スペースキーはあまり意味を持ちません。