C # winform - эквивалент InputScope - PullRequest
0 голосов
/ 03 апреля 2019

Есть ли в Winform свойство (.Net 4.0), эквивалентное InputScope в UWP?

1 Ответ

2 голосов
/ 03 апреля 2019

Нет, я не верю в это.Вам нужно использовать событие 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;
}
...