C# - Подтвердите, пароль и текстовое поле Email показывает мне окно сообщения, когда я ввожу первый символ
//code for confirm password text box:
private void txtRegPassConfirm_TextChanged_1(object sender, EventArgs e)
{
if (txtRegPassConfirm.Text != txtRegPass.Text)
{
MessageBox.Show("Passwords do not match");
txtRegPassConfirm.Clear();
}
else
{
MessageBox.Show("textbox can not be empty");
}
}
//code for text box Password:
private void txtRegPass_TextChanged(object sender, EventArgs e)
{
if (txtRegPass.Text.Length < 8)
{
MessageBox.Show("Password must be at least 8 characters long");
txtRegPassConfirm.Clear();
}
// code for text box Email:
private void txtRegEmail_TextChanged_1(object sender, EventArgs e)
{
string c = ConfigurationManager.ConnectionStrings["Constr"].ConnectionString;
SqlConnection con = new SqlConnection(c);
con.Open();
SqlCommand cmd = new SqlCommand("EmailReg", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Email", this.txtRegEmail.Text);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
if (dr.HasRows == true)
{
MessageBox.Show("Email = " + dr[4].ToString() + "is Already exist");
txtRegEmail.Clear();
break;
}
Regex r = new Regex("^[a-zA-Z0-9){1,20}@[a-zA-Z0-9){1,20}.[a-zA-Z]{2,3}$");
if (!r.IsMatch(txtRegEmail.Text))
{
txtRegEmail.Clear();
MessageBox.Show("incorrect formate");
}
}
}
//code for button Registration:
private void btnRegistration_Click_1(object sender, EventArgs e)
{
string c = ConfigurationManager.ConnectionStrings["Constr"].ConnectionString;
SqlConnection con = new SqlConnection(c);
con.Open();
SqlCommand cmd = new SqlCommand("RegistrationForm", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", txtRegUserN.Text);
cmd.Parameters.AddWithValue("@Password", txtRegPass.Text);
cmd.Parameters.AddWithValue("@Confirm", txtRegPassConfirm.Text);
cmd.Parameters.AddWithValue("@Email", txtRegEmail.Text);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
if (dr.HasRows == true)
{
MessageBox.Show("Data Inserted Succesfully");
}
}
if (dr.HasRows == false)
{
MessageBox.Show("Access Denied, enter the correct fields");
}
else
{
MessageBox.Show("Enter correct info");
}
}
Когда я запустить приложение и ввести пароль в подтверждение текстовое поле, он показывает мне окно сообщения при вводе первого символа «Пароль не совпадает». Также как показано сообщение в текстовом поле Пароль «Пароль должен содержать не менее 8 символов». И так же, как в текстовом поле «Электронная почта», и я хочу применить Regex, но не работает. Я переместил свой код в раздел электронной почты, но он показывает мне сообщение «Недействительное сообщение электронной почты». Теперь скажите мне, что я могу сделать, чтобы ящик сообщений, когда я вводил слова несоответствия, не входя в первый символ.
Я использовал ваш второй вариант ... когда я вводил пароль, он показывает мне значок ошибки, а когда я вхожу неправильно, когда я нажимаю на другое текстовое поле, он заставляет курсор застревать в этом текстовом поле ... – Warda
@Warda Поместите это в Событие 'Load' формы:' this.AutoValidate = System.Windows.Forms.AutoValidate.EnableAllowFocusChange; 'как я, или задал его во время разработки. –
Я использовал, как и выше, вы написали код. Когда я ввожу пароль, он показывает мне значок ошибки, и когда я вхожу неправильно, когда я нажимаю на другое текстовое поле, он помещает курсор в это текстовое поле. – Warda