我决定为此创建一个聊天应用程序,我需要将单个表单运行 2 次(即)我需要在运行时将同一个表单作为两个不同的实例查看......是否有可能实现它。
注意:我不需要在任何事件中完成它。每当我运行我的程序时,必须运行 2 个实例。
我决定为此创建一个聊天应用程序,我需要将单个表单运行 2 次(即)我需要在运行时将同一个表单作为两个不同的实例查看......是否有可能实现它。
注意:我不需要在任何事件中完成它。每当我运行我的程序时,必须运行 2 个实例。
两种解决方案:
使用利用Application.Run 方法 (ApplicationContext)的更复杂的解决方案。请参阅下面的简化 MSDN 示例。
class MyApplicationContext : ApplicationContext
{
    private int formCount;
    private Form1 form1;
    private Form1 form2;
    private MyApplicationContext()
    {
        formCount = 0;
        // Create both application forms and handle the Closed event 
        // to know when both forms are closed.
        form1 = new Form1();
        form1.Closed += new EventHandler(OnFormClosed);
        formCount++;
        form2 = new Form1();
        form2.Closed += new EventHandler(OnFormClosed);
        formCount++;
        // Show both forms.
        form1.Show();
        form2.Show();
    }
    private void OnFormClosed(object sender, EventArgs e)
    {
        // When a form is closed, decrement the count of open forms. 
        // When the count gets to 0, exit the app by calling 
        // ExitThread().
        formCount--;
        if (formCount == 0)
            ExitThread();
    }
    [STAThread]
    static void Main(string[] args)
    {
        // Create the MyApplicationContext, that derives from ApplicationContext, 
        // that manages when the application should exit.
        MyApplicationContext context = new MyApplicationContext();
        // Run the application with the specific context. It will exit when 
        // all forms are closed.
        Application.Run(context);
    }
}