我决定为此创建一个聊天应用程序,我需要将单个表单运行 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);
}
}