- PR -

Checkedプロパティのセット方法

1
投稿者投稿内容
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-10-01 14:13

お世話になっています。

VB2005のラジオボタンのCheckedプロパティ方法を教えて下さい。

画面にラジオボタンが3つあります。

Datasetで取得した列の値が
1ならば、ラジオボタン1の
2ならば、ラジオボタン2の
3ならば、ラジオボタン3の

CheckedプロパティをTrueにしたいのです。

Select Case Ds.Tables(0).Rows(0)("KBN")
Case 1
rad1.Checked = True
Case 2
rad2.Checked = True
Case 3
rad3.Checked = True
End Select

とコーディングしましたが
Select Caseを使わないで
セットしたいのです。

一部は
Me.Controls("rad" & Ds.Tables(0).Rows(0)("KBN").ToString
のような感じになるのでしょうか?

この後、どのようにCheckedプロパティをセットするのでしょうか?

ご教授よろしくお願いします。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-10-01 14:53
引用:

なびさんの書き込み (2007-10-01 14:13) より:

とコーディングしましたが
Select Caseを使わないで
セットしたいのです。


Dictionary(Of String, RadioButton) なリストに突っ込んでおいて、引っかけるっていう手もありますが、なぜ Select Case を使わないでコーディングしたいのですか?

あれ? WindowsForms ですよね? ASP.NET なら RadioButtonList を使えばいけるかな。
_________________
かるあ のメモスニペット
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-01 14:55
引用:

なびさんの書き込み (2007-10-01 14:13) より:

とコーディングしましたがSelect Caseを使わないでセットしたいのです。


理由はよくわかりませんが、今の実装の方がわかりやすくて良いと思います。 Case Else で例外処理をしておくとまずいシナリオを回避することもできます。

引用:

一部は
Me.Controls("rad" & Ds.Tables(0).Rows(0)("KBN").ToString
のような感じになるのでしょうか?


すみませんが意味がよくわかりませんでした。 上記の件もそうですが、もう少し質問の背景を明示して書いて頂けると助かります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-10-01 16:05
すいません。

今はまた3パターンしかないのでいいのですが
今後パターンが増えた時のことを思いまして

Dim rad As New RadioButton
rad = DIRECTCAST(Me.Controls("rad" & mDs.Tables(0).Rows(0)KBN").ToString,   RadioButton)

rad.Checked = True

 という感じでコーディングしたのですが..

 これではエラーになってしまいます。

でも3つぐらいだったら
Select Case の方が
解りやすいでしょうか..



ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-10-01 16:31
引用:

なびさんの書き込み (2007-10-01 16:05) より:
Dim rad As New RadioButton
rad = DIRECTCAST(Me.Controls("rad" & mDs.Tables(0).Rows(0)KBN").ToString,   RadioButton)


前の書き込みと違ってやりたいことはわかると思うがそれにしてもToStringの位置が間違っている。
最初にインスタンス化しておく理由もわからない。

数が多くなった場合の回避策はすでに提示されているが俺ならSelect Caseにする。
れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-10-01 16:37
引用:

かるあさんの書き込み (2007-10-01 14:53) より:
Dictionary(Of String, RadioButton) なリストに突っ込んでおいて、引っかけるっていう手もありますが、



Control.Tagで引っ掛けるという手もありますが。
私も皆さんと同様にSelectかな。10個ぐらいまでは。
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2007-10-01 17:44
大変貴重なご意見ありがとうございます。

Select Caseを使います。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-10-01 18:02
こういうのはどうですか。
コード:
Private rdoArr As RadioButton() = New RadioButton() {rad1, rad2, rad3}
Private Property RadioButtonValue() As Integer
    Get
        For i As Integer = 0 To rdoArr.Length - 1
            If rdoArr(i).Checked Then Return i
        Next
        Return -1 'あるいは例外投げるとか
    End Get
    Set(ByVal value As Integer)
        rdoArr(value).Checked = True
    End Set
End Property


で、使うところでは
コード:
RadioButtonValue = Ds.Tables(0).Rows(0)("KBN")


こんな感じになります。
1

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