при условии, что из вашего примера у вас есть основной frm (frmMain) и дополнительный (frm1), который вы хотели бы показать при нажатии одной кнопки. Вы, конечно, должны поместить их все в контейнер среди их зависимостей, чем пользовательский интерфейсКонструктор root = frmMain будет выглядеть как
public partial class frmMain : Form
{
frm1 _frm1Instance
public frmMain(frm1 frm1Instance)
{
_frm1Instance = frm1Instance;
//...
}
private void button1_Click(object sender, EventArgs e)
{
_fmr1Instance.Show();
}
}
в Guywire среди методов Wire и DeWire. Например, у вас будет такой метод, как
public System.Windows.Forms.Form GetRoot()
{
return container.Resolve<frmMain>();
}
, чем у основного метода,вы создадите экземпляр Guywire и будете использовать форму, возвращаемую GetRoot (), чтобы запустить ваше приложение
Если вы решите пойти по этому пути, вы не сможете использовать frm1 при закрытии, иначе при следующей кнопке button1 вы нажметеЯ попытаюсь получить доступ к дипозированному объекту.
Если вам действительно нужно ввести дозу frm1, я предлагаю вам ввести TypedFactory (WindsorFacility) вместо экземпляра frm1, получить экземпляр через фабрику и также ввести через фабрику.см .: http://mookid.dk/oncode/archives/1854