Как динамически привести родительскую форму в C#
У меня есть форма в C#, которая будет вызываться из некоторых других форм. Некоторые элементы управления, такие как текстовые поля, будут заполнены из вызываемой формы с помощью следующего кода:
if (mdiparent is ADDSickFiling) { ADDSickFiling _ADDSickFiling = (ADDSickFiling)mdiparent; _ADDSickFiling.ReferenceAccountId = Convert.ToInt32(GridViewService.CurrentRow .Cells["AccountId"].Value.ToString()); _ADDSickFiling.ReferenceAccountTextBox.Text = GridViewService.CurrentRow .Cells["AccountName"].Value.ToString(); } else if (mdiparent is ReportCashierByAccOne) { ReportCashierByAccOne _ReportCashierByAccOne = (ReportCashierByAccOne)mdiparent; _ReportCashierByAccOne.CashierID = Convert.ToInt32(GridViewService.CurrentRow .Cells["AccountId"].Value.ToString()); _ReportCashierByAccOne.CashierNameTextBox.Text = GridViewService.CurrentRow .Cells["AccountName"].Value.ToString(); } else if (mdiparent is ReportDrugStoreBill) { ReportDrugStoreBill _ReportDrugStoreBill = (ReportDrugStoreBill)mdiparent; _ReportDrugStoreBill.CashierID = Convert.ToInt32(GridViewService.CurrentRow .Cells["AccountId"].Value.ToString()); _ReportDrugStoreBill.CashierNameTextBox.Text = GridViewService.CurrentRow .Cells["AccountName"].Value.ToString(); }
На основе родительской формы, которая вызвала эту форму, будет выполнен любой из этих трех блоков условий. Эти блоки имеют много общего кода. Как я могу свести эти коды в один блок кода? Как я могу динамически привести тип родительской формы к
mdiparent
и получить доступ к элементам управления родительской формы, как TextBox
?Что я уже пробовал:
Я уже пробовал этот код:
var parentForm = mdiparent.GetTypeof()
Но это кажется неправильным.