Как отправить данные из дочерней формы в родительскую в C# WinForms - PullRequest
0 голосов
/ 09 мая 2020

У меня есть форма входа в родительскую форму, как я могу отправить переменную статуса (status = true или false) в ее родительскую форму? спасибо

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Вы можете использовать свойство DialogResult для возврата ответа Ok / Cancel

DialogResult = DialogResult.Ok;
Close();

Или вы можете назначить свойство AcceptButton формы кнопке Ok (и CancelButton кнопке отмены), чтобы вы только необходимо позвонить на

Close();

Но вышесказанное указывает только на намерение пользователя. Не возвращать информацию о проверке. Для этого вы можете настроить свойство publi c

public bool Validated {get; set; } = false;

В событии нажатия кнопки Ok вы можете сделать:

if (!string.IsNotNullOrWhiteSpace(userText.Text) && string.IsNotNullOrWhiteSpace(passwordText.Text) 
{
     Validated = AuthenticateUser(userText.Text.Trim(), userPassword.Text);
}

В форме вызова вы можете сделать

if (loginForm.ShowDialog() == DialogResult.Ok)
{
    if (loginForm.Validated)
   {
        //Authenticated user
   }
   else
  {
       //invalid user or password
   }
}
0 голосов
/ 09 мая 2020

В форме входа и перед закрытием задайте его DialogResult, например:

/* LoginForm.cs */

this.DialogResult = DialogResult.Yes;
this.Close();

И проверьте его DialogResult в родительском:

/* ParentForm.cs */

if (loginForm.ShowDialog() == DialogResult.Yes)
{
    // Your logic
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...