2014-11-23 148 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; 
     } 
    }