2014-11-23 185 views
-1

我需要關於如何製作和使用一個類來檢查多個文本框中的多個事物。創建類以檢查文本框是否爲空等

現在我的問題是,我有大約50個文本框,我已經添加了我需要的代碼給他們中的每一個。 我已經向某人展示了我的代碼,並且他告訴我可以創建一個類,例如「驗證」,並且只需爲每個需要的驗證添加一個方法,並簡單地使用class.methodname而不是每行代碼單個文本框

現在我的問題是: - 我如何從頭創建這樣一個類? - 我如何在我的代碼中實際使用這個類? - 如何添加一個方法來檢查文本框是否爲空? - 如何添加一種方法來檢查文本框是否只包含字母/數字和空格,即使文本被粘貼到文本框中? - 如何添加一個方法來檢查文件夾是否已經存在?

代碼,我已經目前加入到每個需要這些驗證文本框如下:

檢查文本框爲空或不

if (txtName.Text.Trim().Length == 0) 
     { 
      MessageBox.Show("Please enter a name!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 

檢查文本包含字母數字字符,不用於粘貼的文本工作,雖然

private void txtName_KeyDown(object sender, KeyEventArgs e) 
{ 
if ((e.Key < Key.A) || (e.Key > Key.Z)) 
    e.Handled = true; 
} 

而且最後檢查,如果一個文件夾已經存在

string folderName = ""; 
bool exists= false; 

folderName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), txtName.text); 
    exists= System.IO.Directory.Exists(folderName); 

    if (exists) 
    { 
     MessageBox.Show("This name is already in use", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
    else 
    { 
     System.IO.Directory.CreateDirectory(folderName);      
    } 

感謝您的幫助提前!

+0

聽起來像一個偉大的** **適合[擴展方法](http://msdn.microsoft.com/en-us/library/vstudio/bb383977(v = vs.110)的.aspx)。 – Tim 2014-11-23 18:51:05

+0

你是否需要對每個文本框進行相同的驗證,如**是否爲空**或**包含字母/數字和空格**等? – Shaharyar 2014-11-23 18:53:23

+0

@Tim我遇到過這種情況,除非我誤以爲你不能用這種方式來表示多種形式嗎?除非你複製粘貼每種形式所需的擴展方法? – Steven 2014-11-23 18:55:18

回答

0

,而不是繼承自TextBoxMyTextBox類,並使用this指在你的代碼CurrentTextBox

使用此MyTextBox在任何你想

class MyTextBox : TextBox 
    { 

     public bool IsMyTextBoxEmpty() 
     { 
      if (!string.IsNullOrEmpty(this.Text.Trim())) 
      { 
       return true; 
      } 
      return false; 
     } 

     public bool IsContainsValideSpaces() 
     { 
      //...........Your Logic is Here 
      return false; 
     } 


     public bool IsCopied() 
     { 
      //...........Your Logic is Here 
      return false; 
     } 
    }