0

私はUniの割り当てを行っています.VB.NETフォームにはいくつかのチェックボックスがあり、ループしてそれらをクリアしようとしています(フォームをクリアするボタンがあります)

私の問題は、どのチェックボックスを使用したいかをVBに明示的に伝えていないときに、チェックボックスの状態を設定するために使用できるプロパティがないように見えることです。たとえば、私は行くことができます

WineCheckBox.Checked = False

それはボックスをチェックしますが、コードを少し乾かしたいので、チェックボックスごとにこれを繰り返す必要はありません。これが私がやろうとしていたことです:

If TypeOf element Is CheckBox Then
    element.Checked = False
End If

element.CheckStateを使用してみましたがelement.Checked、どちらも「Checked (または CheckState) は System.Windows.Forms.Control のメンバーではありません」というメッセージが表示されます

これについて見つけることができるすべての属性を調べましたが、どれも役に立たないようです...

何か不足していますか?または、これは単に不可能ですか

ありがとう

編集:

これはコードのブロック全体です:

'clear the controls
    For Each element As Control In Me.Controls
        If TypeOf element Is TextBox Then
            element.Text = ""
        End If
        If TypeOf element Is CheckBox Then
            element.Checked = False
        End If
    Next
4

2 に答える 2

8

どの型として宣言elementしましたか? 単なる の場合、これはチェックされたプロパティを持たないControl基本型です。CheckBox多分試してください:

If TypeOf element Is CheckBox Then
    DirectCast(element,CheckBox).checked = False
End If
于 2011-03-18T00:16:17.173 に答える
2

どうですか:

   For Each element As Control In Me.Controls
        If TypeOf element Is TextBox Then
            element.Text = ""
        End If
        If TypeOf element Is CheckBox Then
            Dim chk As CheckBox = CType(element, CheckBox)
            chk.Checked = False
        End If
    Next
于 2011-04-15T10:29:34.377 に答える