- 題名: オプションボタンのコントロール配列を動的に指定したい。
- 日時: 2012/05/14 9:15:21
- ID: 30435
- この記事の返信元:
- (なし)
- この記事への返信:
- [30440] Re[1]: オプションボタンのコントロール配列を動的に指定したい。2012/05/14 10:08:10
- ツリーを表示
■No30435に返信(Techさんの記事)
> VB6から.netに移行しています。
VB6 互換ライブラリに頼りすぎない方が良いですよ。
.NET には .NET の作り方というものがありますので。
> me.control("ボタン" & i & "(1)").checkedの用に
control → Controls 、用→様 ですね。
> 変数iを使って、チェックされているか判断したいのですが。
これでどうでしょう。
RadioButtonArray はコントロールではないので、Me.Controls の代わりに
CallByName 経由でアクセスしてみました。
'--------------------
Option Explicit
Private Sub Command1_Click()
Dim i As Integer
i = 1
If Me.Controls("Option" & CStr(i))(1).Value Then
MsgBox "Option1(1) がチェックされています。"
Else
MsgBox "未チェック"
End If
End Sub
'--------------------
Option Strict On
Imports Microsoft.VisualBasic.Compatibility.VB6
Friend Class Form1
Inherits System.Windows.Forms.Form
Private Sub Command1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Command1.Click
Dim i As Short = 1
Dim rdo As RadioButtonArray = DirectCast(CallByName(Me, "Option" & CStr(i), CallType.Get), RadioButtonArray)
If rdo(1).Checked Then
MsgBox("Option1(1) がチェックされています。")
Else
MsgBox("未チェック")
End If
End Sub
End Class
==============================
なお、DirectCast を使っている行は、VB6 でいうところの
Dim rdo As Object 'VB6 のコントロール配列には、固有の型が無い
Set rdo = CallByName(Me, "Option1", VbGet)
If rdo(1).Value Then
のコードに相当します。
分類:[.NET]
VB6から.netに移行しています。
コンバートで出来た、RaddioButtomArrayを
me.control("ボタン" & i & "(1)").checkedの用に変数iを使って、チェックされているか判断したいのですが。
なにかいい方法はないでしょうか?
どなたかご教示下さい。よろしくおねがいします。