我在VB.NET中有一个蒙版文本框来输入时间值。我已经尝试过面具90:00,00:00和##:##。第一次在框中输入值时,输入正常。我稍后用
清除文本mskTime.Text = ""
我也试过
mskTime.Clear()
mskTime.ResetText()
问题是在文本被清除并输入新时间后,将删除键入的第一个字符。更确切地说,当我添加时间12:34时,我输入1,它出现在第一个字符槽中。然后按2,1消失,2出现在第二个字符槽中。当你再次输入它来修复它时,角色不会消失。
有没有人看过这个问题或知道为什么第一个角色消失了?
答案 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}");
}
}