У меня есть приложение MDI. Одна из форм должна иметь возможность открывать несколько ее экземпляров одновременно. В этом приложении у меня есть класс программы. Для каждого экземпляра формы мне нужно поместить объект Program в каждую форму. Это работает, однако, каждый раз, когда данные изменяются, он изменяет все объекты программы во всех нескольких экземплярах формы.
Вот класс Program (пока очень простой):
public class Program
{
string strProgramCode;
public Program()
{ }
public string ProgramCode
{
get { return strProgramCode; }
set { strProgramCode = value; }
}
}
Вот код для формы:
frmWeeklyIndividualBudgets tfrmWeeklyIndividualBudgets = new frmWeeklyIndividualBudgets();
tfrmWeeklyIndividualBudgets.Program = this.Program;
tfrmWeeklyIndividualBudgets.Text = this.Program.ProgramCode.ToString() + " Weekly Budget";
this.CheckMdiChildren(tfrmWeeklyIndividualBudgets);
Вот метод CheckMdiChildren:
private void CheckMdiChildren(Form form)
{
foreach (Form frm in this.MdiChildren)
{
if (frm.GetType() == form.GetType())
{
if (frm.GetType().ToString() == "IPAMFinancial_Program_Financial_Breakdown.frmWeeklyIndividualBudgets")
{
frmWeeklyIndividualBudgets tfrm = (frmWeeklyIndividualBudgets)frm;
if (tfrm.Program.ProgramCode == this.Program.ProgramCode)
{
frm.Focus();
return;
}
}
else
{
frm.Focus();
return;
}
}
}
form.MdiParent = this;
form.Show();
}