Существует ли путь tha, форма возвращает значение? что-то как...
sub main()
Dim task as new TaskForm()
dim res as integer=0
res = task.opendialog()
end sub
Если вы используете ShowDialog
, вы можете установить для свойства формы DialogResult
значение. Имейте в виду, что форма не может возвращать произвольные результаты таким образом, только значения перечисления DialogResult
.
В противном случае вам придется установить свойство формы Tag
и вручную извлекать его после закрытия формы, но до того, как вы откажетесь от ссылки на нее.
Это немного зависит от что вы хотите вернуть. Если вы хотите отобразить диалоговое окно и выяснить, какая кнопка использовалась для его закрытия (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 "";
}
}