Могу ли я получить доступ к форме после возвращения Showdialog? ⇐ C#

Место общения программистов C#
Anonymous
Могу ли я получить доступ к форме после возвращения Showdialog?

Сообщение Anonymous »

Я использую подход фабрики-метод в одной форме, такой как: < /p>

Код: Выделить всё

// MyForm.cs
private MyForm() { }

private string Foo()
{
// this would be called after ShowDialog returned
string s = "";
foreach (Label l in MyLabels)
s += l.Text;
}

// this would be called after ShowDialog returned
private int Bar => label1.Text.Length;

public static bool ShowMyForm(out string s, out int i)
{
using (MyForm f = new MyForm())
{
bool ok = f.ShowDialog() == DialogResult.OK;
// accessing Controls of f after ShowDialog returned
s = f.Foo();
i = f.Bar;
return ok; // User clicked OK or Cancel
}
}

// Other Form
void CallForm()
{
if (MyForm.ShowMyForm(out string s, out int i)
{
if (s == ...) { }
if (i == ...) { }
}
}
Мне интересно, является ли это хорошим и достоверным подходом для доступа к формам foo () -method или bar -property для передачи его вызывающему после Showdialog , поэтому форма была закрыта или была принята и т. Д. Таким образом, я бы получил доступ к этому внутри Ui-Thread после возврата ShowDialog . Это проблематично?

Подробнее здесь: https://stackoverflow.com/questions/796 ... g-returned

Вернуться в «C#»