У меня проблема с делегатами в приложении Windows.Forms.
Существует две формы:
основная форма, в которой есть кнопка с названием «Настройки».
форма «настройки», это «дочерняя» форма.
Когда я нажимаю кнопку «Настройки» в главной форме, открывается экземпляр формы «Настройки».
Моя проблема в том, что мне нужно передать переменную в форму «Настройки» при ее открытии. Так что новая форма покажет переменный текст. Я не знаю, как получить информацию в дочерней форме «Настройки». Я сделал это, следуя учебному пособию онлайн и не мог понять из учебника, как читать информацию в форме назначения.
Вот что я сделал, код в основной форме:
public partial class MainForm : Form
{
/// <summary>
/// delegate to send data between forms
/// </summary>
public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
/// <summary>
/// event of the delegate
/// </summary>
public event PageInfoHandler PageInfoRetrieved;
//other stuff, events blabla
private void toolStripBtnSettings_Click(object sender, EventArgs e)
{
PageInfoEventArgs args = new PageInfoEventArgs(SomeString);
this.OnPageInfoRetrieved(args);
SettingsForm settingsForm = new SettingsForm();
settingsForm.ShowDialog();
}
private void OnPageInfoRetrieved(PageInfoEventArgs args)
{
if (PageInfoRetrieved != null)
PageInfoRetrieved(this, args);
}
}