VB蒙面文本框丢失数字

时间:2014-06-06 01:38:56

标签: vb.net visual-studio-2010 time masking maskedtextbox

我在VB.NET中有一个蒙版文本框来输入时间值。我已经尝试过面具90:00,00:00和##:##。第一次在框中输入值时,输入正常。我稍后用

清除文本
mskTime.Text = ""

我也试过

mskTime.Clear()
mskTime.ResetText()

问题是在文本被清除并输入新时间后,将删除键入的第一个字符。更确切地说,当我添加时间12:34时,我输入1,它出现在第一个字符槽中。然后按2,1消失,2出现在第二个字符槽中。当你再次输入它来修复它时,角色不会消失。

有没有人看过这个问题或知道为什么第一个角色消失了?

3 个答案:

答案 0 :(得分:0)

发现问题:

我有一个KeyDown函数来处理用户在时间字段中按Enter键:

    If e.KeyCode = Keys.Enter Then
        Schedule()
        e.SuppressKeyPress = True
    End If

评论

e.SuppressKeyPress = True 

解决了这个问题。我最初使用它来防止Windows每次按下输入时发出叮当声。

答案 1 :(得分:0)

我在C#中遇到了完全相同的问题。输入正常,直到MaskedTextBox以编程方式清除。之后,在输入第二个字符后,在MaskedTextBoxes之一中输入的第一个字符被删除。原来这个问题在KeyDown事件中撒谎。我在那里等待Enter - 键,做了一些事情并清除了TextBoxes。之后,出现了问题。

我现在通过将KeyDown - 事件替换为KeyPress - 事件来解决它。

答案 2 :(得分:0)

这是我最终用来捕捉 Enter 键并移动到下一个字段的东西,当我回到它时不会搞砸被屏蔽的文本框。 道格拉斯

    private void TxtLocID_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            e.Handled = true;
            SendKeys.Send("{Tab}");
        }
    }