C#Winform-相当于InputScope

时间:2019-04-03 17:53:32

标签: c# .net-4.0

Winform(.Net 4.0)中是否有一个属性等同于UWP中的InputScope?

1 个答案:

答案 0 :(得分:1)

不,我不这么认为。您需要使用Validating事件

就像您要确保文本框包含电子邮件一样,您将执行以下操作:

private void textBox1_Validating(object sender, 
            System.ComponentModel.CancelEventArgs e)

{
   string errorMsg;
   if(!ValidEmailAddress(textBox1.Text, out errorMsg))
   {

  // Cancel the event and select the text to be corrected by the user.
  e.Cancel = true;
  textBox1.Select(0, textBox1.Text.Length);

  // Set the ErrorProvider error with the text to display. 
  this.errorProvider1.SetError(textBox1, errorMsg);


}
}

private void textBox1_Validated(object sender, System.EventArgs e)
{
   // If all conditions have been met, clear the ErrorProvider of errors.
   errorProvider1.SetError(textBox1, "");
}
public bool ValidEmailAddress(string emailAddress, out string errorMessage)
{
   // Confirm that the email address string is not empty.
   if(emailAddress.Length == 0)
   {
      errorMessage = "email address is required.";
         return false;
   }



     // Confirm that there is an "@" and a "." in the email address, and in the correct order.

   if(emailAddress.IndexOf("@") > -1)
   {
      if(emailAddress.IndexOf(".", emailAddress.IndexOf("@") ) > emailAddress.IndexOf("@") )
      {
         errorMessage = "";
         return true;
      }
   }

   errorMessage = "email address must be valid email address format.\n" +
      "For example 'someone@example.com' ";
      return false;
}