簡體   English   中英

VB 掩碼文本框丟失數字

[英]VB Masked Textbox Loses Digit

我在 VB.NET 中有一個屏蔽文本框來輸入時間值。 我試過 90:00、00:00 和 ##:## 的面具。 第一次在框中輸入值時,輸入正常。 我后來清除了文字

mskTime.Text = ""

我也試過

mskTime.Clear()
mskTime.ResetText()

問題是在清除文本並輸入新時間后,鍵入的第一個字符被刪除。 更准確地說,當我添加時間 12:34 時,我輸入 1,它出現在第一個字符槽中。 然后我按 2,1 消失,2 出現在第二個字符槽中。 當您再次鍵入以修復它時,該字符不會消失。

有沒有人看到這個問題或知道為什么第一個字符消失?

發現問題:

我有一個 KeyDown 函數來處理用戶在時間字段中按下 Enter 鍵:

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

注釋掉

e.SuppressKeyPress = True 

解決了這個問題。 我最初使用它是為了防止 Windows 在每次按下 Enter 時發出叮當聲。

我在 C# 中遇到了完全相同的問題。 在以編程方式清除MaskedTextBox之前,輸入工作正常。 之后,在輸入第二個字符后,刪除在其中一個MaskedTextBoxes輸入的第一個字符。 結果發現問題出在KeyDown事件中。 我在那里等待Enter -Key,做了一些事情並清除了TextBoxes 之后,問題出現了。

我現在通過用KeyPress -Event 替換KeyDown -Event 來解決它。

這是我最終用來捕捉 Enter 鍵並移動到下一個字段的方法,當我回到它時不會搞砸蒙版的文本框。 道格拉斯

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM