none
如何觸發TextBox1_Validating RRS feed

  • 問題

  • 請問表單中有ErrorProvider,
    按下Button1時會修改TextBox1的值,
    要如何觸發TextBox1.Validating事件呢
    TextBox1_Validating(textBox1,??? )
    問號處要填什麼呢??
      Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            If Not IsNumeric(TextBox1.Text) Then
                objErrorProvider.SetError(TextBox1, "不是數字")
                e.Cancel = True
                Exit Sub
            End If
            objErrorProvider.SetError(TextBox1, "")
            e.Cancel = False
        End Sub
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TextBox1.Text = "abcv"
            TextBox1_Validating( TextBox1, ??) '問號處要填什麼
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            If ValidateChildren() = False Then Exit Sub '表單欄位檢核不通過則離開
            MessageBox.Show("OK")
        End Sub
    2013年11月22日 上午 01:56

解答

  • 事件, 和事件委派方法是不同的.

    你並不是觸發事件 (因為這事件的觸發是發生在 TextBox 內部), 而是呼叫 TextBox1_Validation 方法.

    所以可以改成

    TextBox1_Validating(TextBox1, New System.ComponentModel.CancelEventArgs())
    補充: 如果你要觸發這個 Validation 其實很簡單, 只要焦點 (Focus) 從 TextBox1移到其他控制項自然會觸發它 (我比較建議這麼做)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。



    2013年11月30日 上午 01:44
    版主