У меня есть форма Windows, которая генерируется с использованием кода (включая кнопки и что нет). На нем, помимо прочего, есть текстовое поле и кнопка. При нажатии на кнопку открывается новая форма Windows, которая напоминает список контактов Outlook. Это в основном представление сетки данных с несколькими вариантами фильтрации. Идея состоит в том, что пользователь выбирает строку в этой домашней книге контактов и нажимает кнопку. После нажатия этой кнопки (вторая) форма должна закрыться, а выбранный пользователем адрес электронной почты должен отображаться в текстовом поле формы first .
Я не могу использовать статические формы для этой цели, так есть ли способ сообщить первой форме, что пользователь выбрал что-то во второй фирме? Вы можете сделать это с событиями, или есть другой способ? Имейте ввиду, что я почти ничего не знаю о делегатах и формах.
Пожалуйста, сообщите.
Редактировать 1 = РЕШЕНО
Я могу вернуть адрес электронной почты из второй формы в первую форму, но это подводит меня к другому вопросу. Я генерирую элементы управления, и в этом процессе я также генерирую обработчик событий MouseClick, в который помещена предыдущая процедура выбора контакта.
Но как мне после возвращения адреса электронной почты в обработчике событий MouseClick вставить эту информацию в сгенерированное текстовое поле? Код для иллюстрации:
btn.MouseClick += new MouseEventHandler(btn_MouseClick);
Эта строка находится где-то в методе GenerateControls()
.
void btnContacts_MouseClick(object sender, MouseEventArgs e)
{
using (frmContactList f = new frmContactList())
{
if (f.ShowDialog(fPrompt) == DialogResult.Cancel)
{
var address = f.ContactItem;
MessageBox.Show(address.Email1Address.ToString());
}
}
}
Это появляется отдельно в классе. Так как же поместить адрес электронной почты в текстовое поле, которое я ранее создал?