#c# #winforms
Вопрос:
Я пытаюсь включить btnSubmit, основываясь на том, что длина TxtPswrd превышает 8. Я использую функцию проверки текстового поля, я в замешательстве, следует ли мне использовать функции проверки, проверки или изменения текста?
private void BtnSignin_Click(object sender, EventArgs e)
{
// SqlConnection con = StartCon();
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
TextBox textBox = c as TextBox;
if (textBox.Text != string.Empty)
{
DataInserted(sender, e);
}
else
{
MessageBox.Show("Fill All Fields", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
TxtID.Focus();
break;
}
}
}
функция DataInserted:
private void DataInserted(object sener, EventArgs e)
{
try
{
SqlConnection sqlConnection = StartCon();
string AdminLookup = "Select count(*) from signin WHERE memid = '" TxtID.Text "' and adminpass='" TxtPswrd.Text "'";
SqlCommand command = new SqlCommand(AdminLookup, sqlConnection);
command.Parameters.Clear();
command.Parameters.AddWithValue("@usr", TxtUsername.Text);
command.Parameters.AddWithValue("@pwd", TxtPswrd.Text);
if (command.ExecuteScalar().ToString() =="1")
{
SetValueForText1 = TxtUsername.Text;
new Thread(() => new PSP_Manager().ShowDialog()).Start();
this.Close();
}
else
{
MessageBox.Show("Error Signing in", "Check Credentials", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (SqlException sqlexception)
{
MessageBox.Show("Error", sqlexception.Message);
}
finally
{
StartCon().Close();
}
}
Я пытаюсь включить btnSubmit только тогда, когда TxtPswrd.length >= 8
помогите, пожалуйста. фильм
Комментарии:
1. где находится btnSubmit на рис ?
2. @AmitVerma моя ошибка, это поющая кнопка
Ответ №1:
Я бы использовал TextChanged:
private void PasswordTextbox_TextChanged(object sender, EventArgs e){
submitButton.Enabled = passwordTextbox.Text.Length >= 8;
}
потому что я бы хотел, чтобы кнопка отправки была включена, пока они все еще были сосредоточены в поле, как только они набрали 8 символов
В других новостях не пишите такие SQL-команды; см. http://Bobby-tables.com для чего..
..а также не храните пароли в открытом виде в базе данных; это является причиной http://haveibeenpwned.com должен существовать
Комментарии:
1. Спасибо за ответ, но это не сработало, я попытался немного подправить код, но ответа не последовало. Я вызвал метод в
Form_Load
событии, и кнопка осталась отключенной.2. Я действительно ничего не могу сделать с сообщением об ошибке » это не сработало » — будьте более конкретны, пожалуйста. Вы бы не поместили этот код в качестве обработчика событий Form_Load, потому что это происходит только один раз за весь срок службы формы
3. @CaiusJard правильный ответ.»PasswordTextbox_TextChanged» это событие изменения текста, и оно сработает автоматически, вам не нужно вызывать его из form_load().
4. @UnknownReality чтобы прикрепить обработчик с измененным текстом к текстовому полю, дважды щелкните по нему в конструкторе форм, и появится представление кода с созданным обработчиком с измененным текстом, связанным и ожидающим, когда вы напишете код в
5. @CaiusJard это сработало, и вам нужно вызвать метод в form_load()