簡體   English   中英

C#中的動態文本框驗證

[英]dynamic textbox validation in C#

我的文本框僅接受從0到255(1字節)的數值,我如何防止用戶輸入數字> 255 ...輸入第三個數字后,它應該通過驗證。超出文本框並顯示消息。非常感謝您的幫助。

  private void cor_o_gain_Validating(object sender, CancelEventArgs e)
    {
        try
        {
            int entered = int.Parse(cor_o_gain.Text);
            if (entered > 255)
            {
                e.Cancel = true;
                MessageBox.Show("Enter the number between 0 and 255");
            }
        }
        catch (FormatException)
        {
          //  e.Cancel = true;
        }
    } 

您可能會考慮這樣做,因為這很煩人。 如果用戶鍵入“ 30”並在光標位於3之前時改變了主意,則可以鍵入“ 40”,然后按兩次Delete鍵。 您的應用會向他發出蜂鳴聲,並顯示一個消息框。

如果您必須在輸入文字時進行驗證,請考慮在文字旁邊放置一個標簽,然后將其更新為“無效輸入”或類似內容。 如其他地方提到的那樣,在按鍵,按鍵或按下按鍵時進行操作。

查看主要事件; 按鍵,按鍵,按鍵等

您應該改用numericUpDown控件,並將最小值和最大值設置為0到255之間。

System.Windows.Forms.NumericUpDown n = new System.Windows.Forms.NumericUpDown();
n.Minimum = 0;
n.Maximum = 255;

我會說重新考慮您的實施。 我使用過這樣設計的軟件,這很煩人。 隨着時間的流逝,它很可能會激怒您的用戶,並且沒有真正的好處。

仍然,如果您絕對必須在鍵入過程中停止用戶(再次詢問您是否應該),那么您需要一個諸如Keypress之類的“動作更快”的事件。

雖然有很多“溫特勒”實現。 一種選擇(不是唯一的一種選擇)是更改文本框的背景顏色並使可見的錯誤消息發出警報,但不會阻止用戶輸入無效。 這允許用戶在嘗試更改文本時更改文本而不會被消息框打斷(不被消息框打斷)。

暫無
暫無

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

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