Mohammad Razmi Ответов: 1

C# как открыть несколько приложений в одной форме windows


У меня просто есть MainForm и 9 пользовательских элементов управления внутри Mainform.
Мне нужно открыть 9 приложений (по 1 приложению на UserControl).

Что я уже пробовал:

<pre>public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            int count = 9;
            for (int i = 0; i < count; i++)
            {
                RfControl rfc = new RfControl();
                rfc.gTitle.Text = "Device" + Convert.ToString((i + 1));
                this.flowLayoutPanel1.Controls.Add(rfc);
            }
        }

        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            for(int i=0; i<this.flowLayoutPanel1.Controls.Count; i++)
            {
                RfControl rfc = (RfControl)this.flowLayoutPanel1.Controls[i];
            }
        }

        private void flowLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {

        }
    }

OriginalGriff

И что же?
А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?

Mohammad Razmi

Здравствуйте, сэр. Я на самом деле не знаю, что делать, чтобы достичь своей цели (9 приложений для моего frmmain).
когда я запускаю свое приложение, только одно приложение и процесс открываются в моем диспетчере задач windows.
Я хотел бы открыть 9 из той же программы.

Richard MacCutchan

Затем просто нажмите на приложение 9 раз.

Mohammad Razmi

Я этого не хочу...
Мне просто нужно, чтобы одно и то же приложение запускалось из другого потока для каждого UserControl (9 из них присутствуют в моей основной форме)

Richard MacCutchan

Используйте Класс Процесса (System.Диагностика) | Microsoft Docs[^] для создания каждого приложения.

1 Ответов

Рейтинг:
0

OriginalGriff

Потоки и процессы отличаются от приложений!
Если у вас есть приложение (например, EXE-файл), которое вы хотите запускать каждый раз при создании экземпляра элемента управления, то элемент управления должен вызывать Process.Начать:

Process.Start("MyApp.exe", "my app parameters");

Процесс.Метод Запуска (System.Диагностика) | Microsoft Docs[^] или одна из его перегрузок, или создайте экземпляр процесса для более тонкого управления.

Если у вас есть задача, которую вы хотите запустить в фоновом режиме в вашем элементе управления, но код встроен в сборку элемента управления, то вам нужен поток, и я бы рекомендовал начать с него. Класс BackgroundWorker (System.ComponentModel) | Microsoft Docs[^] пример.