- PR -

ラジオボタンの選択

1
投稿者投稿内容
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-08-28 17:08
こんにちは。
VB2005でアドバイスお願いします。

GroupBoxにラジオボタンを4つ配置しました。
どのラジオボタンが選択されているのか判断したいのですが..


    If rdo1.Checked = True Then
MsgBox("A")
ElseIf rdo2.Checked = True Then
MsgBox("B")
ElseIf rdo3.Checked = True Then
MsgBox("C")
ElseIf rdo4.Checked = True Then
MsgBox("D")
End If

と書いてみました。
もっとスッキリできないですか?
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-08-28 17:27
rdo1〜4それぞれが選択されている時の処理はそれぞれなんですよね。
それならなびさんのソースが一番すっきりじゃないですかね。

メッセージボックスを出すのは同じで、表示するメッセージが違うだけなので、MsgBox()を複数書きたくないということでしょうか。


余談ですが、MsgBox()とか書かれるとVB6以前のVB使い以外には分かりづらいですね。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-28 17:55
rdo1〜4への参照を配列に入れておくとか。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2007-08-28 18:29
案1:
・GroupBoxのControlsプロパティを使って、For Eachでまわしてみる
# コードを書いてみたけど、いまいちすっきりしなかった

案2:
・ラジオボタンのチェック状態を、対応する列挙体の値で返すようなメソッドを作っておく
・実際の処理は、メソッドの戻り値を使ってSelect Caseで分岐させる
# 同じような処理が何箇所かにある場合は有効かも
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-08-28 18:48
みなさんありがとうございます。

すいません検討してみます。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-28 19:52
引用:

なびさんの書き込み (2007-08-28 17:08) より:

もっとスッキリできないですか?


見た目だけで良いならば、

コード:

    Select Case True
        Case rdo1.Checked : MessageBox.Show("A")
        Case rdo2.Checked : MessageBox.Show("B")
        Case rdo3.Checked : MessageBox.Show("C")
        Case rdo4.Checked : MessageBox.Show("D")
    End Select


でも私はこの書き方は嫌いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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