- PR -

[VB.NET]異なるコントロール上のラジオボタンについて

1
投稿者投稿内容
オレンジ
常連さん
会議室デビュー日: 2004/07/01
投稿数: 23
投稿日時: 2004-07-02 17:02
お世話になります。

tabでフォーム上のコントロールを移動する際、
選択されていないラジオボタンに
フォーム起動時のみ、
フォーカスが移り、ONになってしまい困っています。

<現在の処理・設定>
パネルAの上にラジオボタンaがあり、
パネルBの上にラジオボタンbがあります。
(Aとa・・・tabindex=1、Bとb・・・tabindex=2)

aとbは、下記コードにて
どちらか一方のみ選択可という処理を行っています。

設定・コードが間違っているのでしょうか。
あるいは、別のコードを追加しなければ回避できないのでしょうか。

ご教授の程よろしくお願いいたします。

<以下コード>
'ラジオボタンb CheckedChangedイベント
Private Sub rdoa_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rdoa.CheckedChanged
With Me
If .rdoa.Checked = True Then
.rdob.Checked = False
Else
.rdob.Checked = True
End If
End With
End Sub

'ラジオボタンb CheckedChangedイベント
Private Sub rdob_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rdob.CheckedChanged
With Me
If .rdob.Checked = True Then
.rdoa.Checked = False
Else
.rdoa.Checked = True
End If
End With
End Sub



えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-07-03 09:33
Web ではなく Form でいいんですよね。
プログラム起動前の プロパティウィンドウの rdoa.Checked と rdob.Checked の値はどうなっているのでしょうか?

_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
オレンジ
常連さん
会議室デビュー日: 2004/07/01
投稿数: 23
投稿日時: 2004-07-05 09:45
御返答ありがとうございます。

起動前のCheckedプロパティは、
両方ともFalseに設定してあります。
(rdoaは仕様上、初期値ONになので、
最初はrdoaのみcheckedプロパティをTrueにしていましたが、
状況は現在と同じです。)
フォーム起動(フォームロード)時に
rdoa.Checked=Trueにしていますが。
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-07-05 12:22
AutoCheck プロパティを両方ともOffにしてください。
現象は収まると思います。

ラジオボタンの本来の使い方はグループ内の複数のラジオボタンの内の1つを、Onにするという使い方です。
別パネル(別グループ)に配置するのはWindowsForm一般として画面設計上問題があります。
_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
オレンジ
常連さん
会議室デビュー日: 2004/07/01
投稿数: 23
投稿日時: 2004-07-05 13:55
御返答ありがとうございます。

AutoCheckプロパティを両方ともOffにしましたが、
今度はrdobをクリックしてもOn状態にならなくなってしまいました。

おっしゃる通りラジオボタンは同一グループに配置するべきですが、
わけあって別になっているのです・・・。

何度も申し訳ありませんが、
ご教授よろしくお願いいたします。
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-07-05 15:15
RadioButton コントロール (Windows フォーム), グループ化 のヘルプを見てください。

オレンジさんの要求するような仕様はラジオボタンには無理そうです。
checkbox に変更すればうまく動作することは確認しました。
オレンジ
常連さん
会議室デビュー日: 2004/07/01
投稿数: 23
投稿日時: 2004-07-05 18:57
何回もご返答を頂きありがとうございました。

CheckedChangedイベント内で、
他方のラジオボタンをChecked=Falseにすると同時に
TabStop = Falseにすることで
今までの現象を回避できました。

お世話になりました。
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-07-05 23:55
それだと、rdoa が Checked のときに、マウスを使わないで rdob を Checked に出来ないんじゃないですか?
まぁ、オレンジさんがよければいいんですが・・・
_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
1

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