簡體   English   中英

驗證WinForms文本框(在C#中)

[英]Validating WinForms TextBox (in C#)

在TextBox_Leave事件中,我需要檢查在文本框中輸入的數字是否為序列號。如果不是按順序排列,則我需要顯示一條消息,因為缺少“數字”

例如 :

在文本框中,我輸入了3,然后單擊選項卡:我需要顯示消息,因為“數字順序不正確,數字“ 1”和“ 2”缺失”

我不知道這是否也適用於c#2.0,這是我在c#3.0中的經驗:

為什么要使用TextBox_Leave? 驗證事件應用於驗證輸入是否正確。

結合使用Validating-event和ErrorProvider(您可以將其從工具箱拖到表單上)來設置錯誤消息:它將以紅色三角形(閃爍)顯示為感嘆號。

ErrorProvider也可以阻止任何提交動作。

一種技巧是在某些情況(缺少數字)的情況下嘗試離開(例如,使用TAB)時在文本框中保留焦點:

 private void textBox1_Leave(object sender, EventArgs e)
    {
        TextBox tb = (TextBox)sender;

        if (tb.Text == "3")
            tb.Focus();
    }

假設您使用的是標准文本框。 您還可以使用第三方控件,在某些情況下可以在其中取消事件(例如,Cancel = true)。

嘗試使用Masked TextBox控件並為這種類型的字段驗證設置自定義屬性。

或者,您也可以使用文本框的Validating事件。

  private void textBox1_Validating( object sender, CancelEventArgs e )
  {
      if ( textBox1.Text == "3" )
          e.Cancel = true;
  }

文本框在收到有效輸入之前不會失去焦點。

我將向您展示如何驗證Validating WinForms TextBox (在C#中)。

  1. 創建一個函數:

     public static void ChkBlankTextBoxes(object sender, string type) { if (sender is TextBox) { TextBox textbox = sender as TextBox; if (string.IsNullOrEmpty(textbox.Text)) { MessageBox.Show("Please enter correct value value.."); textbox.Focus(); } } } 
  2. 調用創建的函數:

     ChkBlankTextBoxes(txt_userID, textBoxtype); ChkBlankTextBoxes(txt_password, textBoxtype); 

暫無
暫無

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

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