Для примера - представим, что у нас есть MDI приложение и нам надо создать несколько разных окон с одинаковым набором параметров. Можно для каждого окна копипастом прописать, а можно сделать так -
private void window1ToolStripMenuItem_Click(object sender, EventArgs e) { openMDIform("Form2"); } private void form5ToolStripMenuItem_Click(object sender, EventArgs e) { openMDIform("Form5"); } private void openMDIform(string name) { //по переданному имени формы узнаём имя класса с помощью //(Form)Activator.CreateInstance(Type.GetType(Assembly.GetExecutingAssembly().GetName().Name + "." + name)) //и создаём Form form = (Form)Activator.CreateInstance(Type.GetType(Assembly.GetExecutingAssembly().GetName().Name + "." + name)); form.MdiParent = this; form.Show(); }
За счёт этого можно передавать просто имя компонента, не прописывая каждый раз его свойства.
Комментариев нет:
Отправить комментарий