5

次のコードを使用してクリアしています

txtint1.Clear()
txtext1.Clear()
txttot1.Clear()
txtint2.Clear()
txtext2.Clear()
txttot2.Clear()
txtint3.Clear()
txtext3.Clear()
txttot3.Clear()
txtint4.Clear()
txtext4.Clear()
txttot4.Clear()
txtint5.Clear()
txtext5.Clear()
txttot5.Clear()
txtint6.Clear()
txtext6.Clear()
txttot7.Clear()
txtint8.Clear()
txtext8.Clear()
txttot8.Clear()

すべてのテキスト ボックス コントロールを一度に、または数行のコードでクリアする可能性はありますか?

4

9 に答える 9

7

含まれているフォーム上のすべてのコントロールを反復処理し、root.Controlsそれが textbox タイプであるかどうかを確認してからTypeOf ctrl Is TextBox、そのコントロールのテキストをクリアできますCType(ctrl, TextBox).Text = String.Empty

良い!!すべてのコントロールをループするには、再帰を使用する必要があります

コードの追加:

Public Sub ClearTextBox(parent As Control)

    For Each child As Control In parent.Controls
        ClearTextBox(child)
    Next

    If TryCast(parent, TextBox) IsNot Nothing Then
        TryCast(parent, TextBox).Text = [String].Empty
    End If

End Sub
于 2013-07-28T07:47:18.153 に答える
4

それらを配列に入れてから、配列をループできます。

For Each txt In {txtint1, txtext1, txttot1, txtint2, txtext2, txttot2, txtint3, txtext3, txttot3, txtint4, txtext4, txttot4, txtint5, txtext5, txttot5, txtint6, txtext6, txttot7, txtint8, txtext8, txttot8}
    txt.Clear()
Next
于 2013-07-28T07:47:35.857 に答える
0

これを試してください

    Dim a As Control
    For Each a In Me.Controls
        If TypeOf a Is TextBox Then
            a.Text = ""
        End If
    Next

また

Dim a As Control
    For Each a In Me.Controls
        If TypeOf a Is TextBox Then
            a.clear()
        End If
    Next

. Clear() が textbox プロパティのメンバーである場合は、それを使用します。.clear() はテキストボックス プロパティのメンバーではないと思います。

于 2016-04-17T03:41:16.133 に答える
0

これは、私が自分のプロジェクトで個人的に使用するコードです ^_^

ClearAll TextBoxes : For Each TxtBox In Me.Controls.OfType(Of TextBox) TxtBox.Clear() Next TxtBox

于 2019-01-14T21:24:59.307 に答える