Приложение C # Winforms Чтобы открыть второе приложение Winforms - PullRequest
3 голосов
/ 05 января 2011

У меня есть небольшое приложение, которое я написал, которое нужно использовать / объединить примерно в 6 больших частей. В идеале я хочу иметь возможность открывать этот меньший фрагмент из каждого отдельного приложения вместо добавления кода к каждому. Это позволило бы упростить обслуживание в случае изменений, которые необходимо внести только в одно приложение.

Я посмотрел, но не могу понять, как открыть второе приложение winform изнутри одного. Любая помощь будет великолепна.

Спасибо

Ответы [ 2 ]

3 голосов
/ 05 января 2011

2 варианта.

1) Если это небольшое приложение может работать автономно, то есть оно может работать каким-то полезным способом, не будучи порожденным родительским приложением, тогда используйте Process.Start(). Ваши приложения, которые порождают этот процесс, могут не работать в среде с частичным доверием.

Process.Start("notepad.exe");

2) Если приложение полезно только в контексте родительских приложений, скажем, с помощью предоставления объектов или других аргументов из других приложений, рассмотрите возможность рефакторинга небольшого приложения, чтобы позволить родительскому приложению ссылаться на проект формы. Затем ваши родительские приложения могут просто создать новый экземпляр формы и отобразить его:

var childForm = new SmallAppForm();
childForm.Owner = this; //the child window will close when its owner does.
childForm.Show();

Несмотря на то, что это больше кода, его, как правило, проще и проще в реализации. К форме также можно получить доступ и, таким образом, управлять из любого места в приложении, а другие функции могут быть реализованы без необходимости иметь дело с довольно запутанным бизнесом межпроцессного взаимодействия.

2 голосов
/ 05 января 2011

Я бы хотел сделать эту Библиотеку отдельным проектом, на который вы добавите ссылку из других ваших проектов.Гораздо чище, чем нерестовые дочерние процессы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...