我在文本框的KeyPress事件中有以下代码,现在需要的是,我必须做myTextbox.Text =“输入字符串”
Private Sub ChequeAmountKeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtChequeAmount.KeyPress
Dim tb As TextBox = sender
If (e.KeyChar = "." AndAlso tb.Text.Length = 0) Then
e.Handled = True
End If
If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Or (e.KeyChar = "." And tb.Text.IndexOf(".") < 0)) Then
e.Handled = True
End If
If (tb.SelectionStart > tb.Text.Length - 2 And tb.Text.IndexOf(".") >= 0 And tb.Text.IndexOf(".") + 3 = tb.Text.Length) Then
e.Handled = True
End If
If (tb.Text.IndexOf(".") < 0 And tb.Text.Length >= 4 And e.KeyChar <> ".") Then
e.Handled = True
End If
If (tb.Text.IndexOf(".") >= 0 And tb.Text.Length >= 7) Then
e.Handled = True
End If
If (e.KeyChar = ControlChars.Back) Then
e.Handled = False
End If
End Sub
此输入字符串可能包含我不想要的格式,而当按键事件满足用户输入时的需要时,我需要在文本分配的情况下处理它。
我认为在分配了text属性后触发了按键事件,但我认为这不会提供我想要的内容。
由于
答案 0 :(得分:0)
您需要做的是将此代码重构为方法,然后从相关事件中调用该方法。
答案 1 :(得分:0)
如果您需要在键入时单独检查每个键以及同时检查所分配的字符串,最好使用两个函数,为有效性添加一个检查字符串。
我通常更喜欢使用Leave事件一次检查字符串,因为用户在检查之前输入整个字符串可能更自然。如果这样做,您可以从Leave事件处理程序和分配文本之前调用相同的有效性检查功能。