我在VS Studio 2008速成版创建的2种形式,并与主要的Program.cs文件公共静态声明它们
我只是想这两种形式与ShowDialog的和关闭,但之间切换试图关闭第二种形式与ShowDialog的它说当窗体已经可见,我不能使用的ShowDialog再次打开第一种形式,而这是不正确的,因为我的时候之前关闭它以显示第二种形式。
它要求我使用的ShowDialog之前设置窗体可见属性设置为false,所以我做到了
internal static void CloseSecondForm(FirstForm FirstForm)
{
FirstForm .Close();
SecondForm.Visible = false;
SecondForm.ShowDialog();
}
但随后说我不能使用,因为ShowDialog的形式在对话框模式已经显示出,而且我必须关闭它。 所以,我没有什么要求
internal static void CloseSecondForm(FirstForm FirstForm)
{
FirstForm .Close();
SecondForm.Visible = false;
SecondForm.Close();
SecondForm.ShowDialog();
}
但它仍然假装形式已经与ShowDialog的开启!
这是我PROG或WinForm的一个Bug?
更新:这是整个代码我张贴在5个答案(我想用的ShowDialog并没有显示,因为我可以在后台第三形式,我不希望用户访问):
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 = new Form1();
Form2 = new Form2();
Form1.ShowDialog();
Application.Run();
}
// called from Form1 BUTTON
internal static void ShowForm2(Form1 Form1)
{
Form1.Hide();
Form2.ShowDialog();
}
// called from Form2 BUTTON
internal static void ShowForm1(Form2 Form2)
{
Form2.Hide();
Form1.ShowDialog();
}
我试图隐藏的建议,但它也不起作用。 这是整个计划,我想要做的是非常简单的:我最初计划,每个表单上一个键创建两种形式关闭自我和打开其他。 我把所有的逻辑在下面的Program.cs:
using System;
using System.Windows.Forms;
namespace twoforms
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
///
public static Form1 Form1;
public static Form2 Form2;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 = new Form1();
Form2 = new Form2();
Form1.ShowDialog();
Application.Run();
}
// called from Form1 BUTTON
internal static void ShowForm2(Form1 Form1)
{
Form1.Hide();
Form2.ShowDialog();
}
// called from Form2 BUTTON
internal static void ShowForm1(Form2 Form2)
{
Form2.Hide();
Form1.ShowDialog();
}
}
}