Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过按钮将窗体相互链接可使多个窗口具有相同的窗体_C#_Winforms_Visual Studio - Fatal编程技术网

C# 通过按钮将窗体相互链接可使多个窗口具有相同的窗体

C# 通过按钮将窗体相互链接可使多个窗口具有相同的窗体,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我正在尝试创建两个带有按钮的Windows窗体,以便使用以下代码将它们相互链接: private void cmdInformation_Click(object sender, EventArgs e) { frmInformation information = new frmInformation(); information.Show(); } (第二种形式也是如此) 使用此代码时,如果您一直单击按钮,您将有多个相同形式的窗口。我能做些什么来阻止这一切 最好的解决方案是

我正在尝试创建两个带有按钮的Windows窗体,以便使用以下代码将它们相互链接:

private void cmdInformation_Click(object sender, EventArgs e)
{
    frmInformation information = new frmInformation();
    information.Show();
}
(第二种形式也是如此) 使用此代码时,如果您一直单击按钮,您将有多个相同形式的窗口。我能做些什么来阻止这一切

最好的解决方案是在不创建新表单的情况下将表单链接在一起,但除了上面的方法之外,我不知道还有什么其他方法

已测试隐藏(),但它只是隐藏多个窗口,即使关闭上次显示的窗口,程序仍保持打开状态。

尝试关闭(),但当它关闭主窗体时,整个程序结束。使用对话框

information.ShowDialog()

如果需要,您还可以阅读对话框结果并从表单中获取响应

使用对话框

information.ShowDialog()


如果需要,您还可以阅读对话框结果并从表单中获取响应

一个选项是创建一个跟踪实例的FormFactory,这样,如果表单不存在,您可以创建一个新实例并显示它。如果表单存在,您可以只显示当前实例。

一个选项是创建一个跟踪实例的FormFactory,这样,如果表单不存在,您可以创建一个新实例并显示它。如果表单存在,您可以只显示当前实例。

将相反表单的创建移到单击事件之外

frmInformation information = new frmInformation();

private void cmdInformation_Click(object sender, EventArgs e)
{
    information.Show();
}

这将反复显示同一表单并维护任何数据,即使用户关闭了该表单。

将创建相反表单的操作移到单击事件之外

frmInformation information = new frmInformation();

private void cmdInformation_Click(object sender, EventArgs e)
{
    information.Show();
}

这将反复显示同一表单并维护任何数据,即使用户将其关闭。

您希望看到什么<代码>frmInformation信息=新frmInformation()将在每次单击该按钮时创建一个新的
frmInformation
实例。单击该按钮后,需要禁用该按钮。这样就不会再有实例了。这就是你需要的吗?@超验,这也是我的问题。我不知道如何在不创建新表单的情况下链接表单。我有任何答案。这解决了我的问题:你期望什么<代码>frmInformation信息=新frmInformation()将在每次单击该按钮时创建一个新的
frmInformation
实例。单击该按钮后,需要禁用该按钮。这样就不会再有实例了。这就是你需要的吗?@超验,这也是我的问题。我不知道如何在不创建新表单的情况下链接表单。我有任何答案。这解决了我的问题:将
Show()
更改为
ShowDialog()
,但问题仍然存在。将
Show()
更改为
ShowDialog()
,但问题仍然存在。