У меня есть родительская форма, которая содержит «HUD» с именем, фамилией и т. Д. Одной из дочерних форм является форма поиска. Когда пользователь выбирает члена из результатов, отображаемых в DataGrid, я хочу, чтобы соответствующая информация заполняла HUD. Я создал класс HUD с переменными для каждого значения и метод с именем UpdateHUD (). Я не уверен, как заставить это работать. У меня есть ссылка на форму поиска родительской формы, содержащей HUD, например:
public frmWWCModuleHost _frmWWCModuleHost;
Это код, который я использую для встраивания форм. Я не использую MDI.
public static void ShowFormInContainerControl(Control ctl, Form frm)
{
frm.TopLevel = false;
frm.FormBorderStyle = FormBorderStyle.None;
frm.Dock = DockStyle.Fill;
frm.Visible = true;
ctl.Controls.Add(frm);
}
Вот код, который я запускаю в ячейке. Нажмите на форму поиска. Это было до того, как я попытался реализовать класс HUD.
private void dgvSearchResults_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
_frmWWCModuleHost = new frmWWCModuleHost();
_frmWWCModuleHost.tbxHUD_LastName.Text = dgvSearchResults.CurrentRow.Cells[1].FormattedValue.ToString();
_frmWWCModuleHost.tbxHUD_LastName.Invalidate();
_frmWWCModuleHost.FormPaint();
}
Заранее спасибо!
~ Патрик
EDIT
dgvSearchResults_CellContentClick теперь актуально. Когда я перехожу этот код, он получает правильное значение здесь, но он никогда не обновляет фактический HUD.
РЕДАКТИРОВАТЬ 2
Моя проблема в том, что я объявляю NEW frmWWCModuleHost вместо передачи ссылки на существующую? Я все еще довольно слаб в моем понимании этого.
РЕДАКТИРОВАТЬ 3
Я «решил» это, выполнив следующее: В родительской форме, где я объявляю дочернюю форму, я передаю this в качестве параметра. Затем в конструктор дочерней формы я добавил _frmWWCModuleHost = m_parent; У меня есть метод UpdateHUD () в родительской форме, и я вызываю его из события _CellClick для дочернего элемента.
Теперь перефразирую мой вопрос; Что-то явно не так с этим?