onclosing формируют возвращаемое значение

Существует ли путь tha, форма возвращает значение? что-то как...

sub main() 

   Dim task as new TaskForm()
   dim res as integer=0
   res = task.opendialog()

end sub
1
задан carlos 27 May 2010 в 16:14
поделиться

2 ответа

Если вы используете ShowDialog , вы можете установить для свойства формы DialogResult значение. Имейте в виду, что форма не может возвращать произвольные результаты таким образом, только значения перечисления DialogResult .

В противном случае вам придется установить свойство формы Tag и вручную извлекать его после закрытия формы, но до того, как вы откажетесь от ссылки на нее.

1
ответ дан 3 September 2019 в 00:16
поделиться

Это немного зависит от что вы хотите вернуть. Если вы хотите отобразить диалоговое окно и выяснить, какая кнопка использовалась для его закрытия (OK, Отмена, ...), вы можете отобразить форму с помощью метода ShowDialog , который возвращает DialogResult value:

DialogResult result = theForm.ShowDialog();
if (result == DialogResult.OK)
{
    // OK was clicked
}

Если вы хотите вернуть какое-то другое значение, самый простой способ - предоставить его через свойство в форме или предоставить статический метод в форме, который создаст его экземпляр, соберите необходимый ввод, а затем вернуть данные:

class NameInputForm : Form
{
    // form initialization / construction left out for brevity, but let's assume
    // it contains a TextBox control called UserNameTextBox and a button with
    // its DialogResult property set to OK

    public static string GetNameFromUser()
    {
        using (NameInputForm form = new NameInputForm())
        {
            if (form.ShowDialog() == DialogResult.OK)
            {
                return form.UserNameTextBox.Text;
            }
        }
        return "";
    }
}
1
ответ дан 3 September 2019 в 00:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: