none
vb.net winform textbox 如何 限制 数字的范围~ 还有如何 在达到某个数位 的时候 会自动跳去另外一个texbox RRS feed

  • 问题

  • 如题

    Question 1

    比如说

    textbox.text = 365

    如果多过 >365

    要在什么event 让我在 输入 超过365 的时候 直接跳回 365

    而且不能有负数

    Question 2

    比如说

    我在textbox1 限定了 3 个数位
    当我输入完3个数位了后我在输入的时候会自动 跳去texbox2 继续输入数字

    Question 3

    跟第2题有些相关 但是这次是从textbox2 跳回去textbox1
    当我backspace 完textbox2 的text的时候 我再次在 textbox2 使用 backspace 该如何跳回去textbox1 的text的最尾端 继续执行backspace 呢? 





    麻烦 各位高手 赐教 留下coding 哦~~~
    • 已编辑 xeraee 2009年3月25日 18:58
    2009年3月25日 18:45

答案

  • 你好,
    关于第一个问题我觉得可以使用TextChanged事件,当触发这个事件后检测是否大于365,如果大于则修改其值为365.
    第三个问题你可以采用KeyDown事件,检测按下键的KeyCode,如果是backSpace的值,则检测现在textbox中value是否为空,如果是则自动跳到前面textbox就可以了。
    Microsoft Online Community Support
    2009年3月30日 3:57

全部回复

  • 针对question 1 我自己写了一个coding 但是似乎不是很理想
    因为他不会直接性的中断输入超过 365的时候 的事件

    有没有更perfect一点的 解答呢@@?


    Private Sub txtImei_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtImei.KeyDown
     

            If CDbl(Val(txtImei.Text)) > 365 Then
                txtImei.Text = 365
                txtImei.Focus()
            ElseIf CDbl(Val(txtImei.Text)) <= 0 Then
                e.Handled = False

            Else : Exit Sub
            End If
        End Sub

        Private Sub txtImei_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtImei.KeyUp

            If CDbl(Val(txtImei.Text)) > 365 Then
                txtImei.Text = 365
                txtImei.Focus()
            ElseIf CDbl(Val(txtImei.Text)) <= 0 Then
                e.Handled = False

            Else : Exit Sub
            End If
        End Sub

    2009年3月25日 18:54
  •  question 2 我会了@@"

    来解答一下


     Private Sub textbox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged  
            If textbox1.TextLength = 4 Then  
                textbox2.Focus()  
            End If  
        End Sub 


    顺便问一下 通常 backspace delete f1 f2 f3 f4 f5 之类的 key 是要用什么 coding来代表的@@?
    • 已标记为答案 xeraee 2009年3月25日 19:27
    • 取消答案标记 xeraee 2009年3月26日 5:42
    2009年3月25日 19:25
  • 针对question 1 和 question 3有谁可以解答
    2009年3月26日 5:43
  • 你好,
    关于第一个问题我觉得可以使用TextChanged事件,当触发这个事件后检测是否大于365,如果大于则修改其值为365.
    第三个问题你可以采用KeyDown事件,检测按下键的KeyCode,如果是backSpace的值,则检测现在textbox中value是否为空,如果是则自动跳到前面textbox就可以了。
    Microsoft Online Community Support
    2009年3月30日 3:57