コントロールアクション


フォームを書くとき、コントロールの表示内容が空であるか、または表示情報が空であるかどうかを判断することがよくあります.コードのクリーン化のために、これらの繰り返しの内容を個別のクラスモジュールに書いたほうがいいです.次に、私がどのように操作しているかを説明します(テキストボックスとコンボボックスを例にDemoを作りました):
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TestEmpty(TextBox1, Label2) Then Exit Sub
        If TestEmpty(ComboBox1, Label1) Then Exit Sub
        Clear(TextBox1)
        Clear(ComboBox1)
    End Sub

    ''' <summary>
    '''  
    ''' </summary>
    ''' <param name="ctrl"> </param>
    ''' <remarks>2011-4-22 19:19 by dan</remarks>
    Private Sub Clear(ByVal ctrl As Control)
        If (TypeOf ctrl Is TextBox) Then
            ctrl.Text = ""
        ElseIf (TypeOf ctrl Is ComboBox) Then
            ctrl.Text = ""
            CType(ctrl, ComboBox).SelectedIndex = -1
        End If
    End Sub

    ''' <summary>
    '''  
    ''' </summary>
    ''' <param name="ctrl"> </param>
    ''' <param name="ctrlshow" > </param>
    ''' <remarks>2011-4-22 19:20 by dan</remarks>
    Private Function TestEmpty(ByVal ctrl As Control, ByVal ctrlshow As Control) As Boolean
        Dim result As Boolean

        If Trim(ctrl.Text) = "" Then
            MsgBox(ctrlshow.Text & " !", vbOKOnly + vbInformation, " ")
            ctrl.Focus()
            result = True
        Else
            result = False
        End If
        Return result
    End Function 
   
   

注意:空にする場合は、共通コントロールクラスのText属性を呼び出すだけでText属性が空になるのが一般的ですが、コンボボックスのようにリストボックスで選択した情報を空にする必要がある場合は、コントロールをそのタイプに変換して対応する属性を操作する必要があります