Both "Application.Run(new Form1());" and "Application.Run(new Form2());" won't provide you the instance of Form1 and Form2. So you can't handle them.in class Form1: public static Form1 formInstance = new Form1()in class Form2: public static Form2 formInstance = new Form2()in main: Application.Run(Form1.formInstance); Application.Run(Form2.formInstance);Any manipulation should handle "Form1.formInstance" and "Form2.formInstance".
比如说MainForm
Application.Run(new MainForm());
MainForm把自己Hide了
F1,F2,随便切换
退出时MainForm.Close();或者
Application.Run(new F1());
F1不关闭,只是Hide
退出时F1.Close();不要Copy Application.Run 这个东西
它运行起来的窗口是主窗口,关掉之后就继续执行Main函数里后面的代码,程序就退出了
Application.Run的窗口一定不能关,除非想退出程序的时候
Application.Run(new Form2());只要用楼主的
private void button1_Click(object sender, System.EventArgs e)
{
Form2 AFormInstance = new Form2();
AFormInstance.Show();
Close();
}private void button1_Click(object sender, System.EventArgs e)
{
Form1 AFormInstance = new Form1();
AFormInstance.Show();
Close();
}就可以无限循环下去
Application.Run(new MainForm());
MainForm把自己Hide
F1,F2,随便切换
退出时MainForm.Close()。
————————————————————应该是这样的,我试的时候那个Form也是从原来的一个窗体show出来的
t.Show();在Paint事件里面Hide();然后在Form1和Form2里面分别
private void button1_Click(object sender, System.EventArgs e)
{
Form2 AFormInstance = new Form2();
AFormInstance.Show();
Close();
}private void button1_Click(object sender, System.EventArgs e)
{
Form1 AFormInstance = new Form1();
AFormInstance.Show();
Close();
}
就可以了
1、找不到类型或命名名称“FormA”(是否缺少using指令或程序集应用?)
2、。"t"(是否缺少using指令或程序集引用?)
是这句吧?FormA t=new Form1();
t.Show();很明显应该是Form1 t=new Form1();
t.Show();……
public static Form1 formInstance = new Form1()in class Form2:
public static Form2 formInstance = new Form2()in main:
Application.Run(Form1.formInstance);
Application.Run(Form2.formInstance);Any manipulation should handle "Form1.formInstance" and "Form2.formInstance".
Form2里
1 添加private Form1 mF_Form ;
2 修改Form2的构造函数
public Form2(Form1 myForm )
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
this.mF_Form = myForm ;
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
3 显示按钮里添加
this.Hide();
this.mF_Form.ShowDialog();
4 关闭按钮
Application.Exit();
Form1里
1 private Form2 m_Form2 ;
2 显示按钮
this.m_Form2 = new Form2( this );
this.Hide();
this.m_Form2.ShowDialog();
3 关闭按钮
Application.Exit();
我自己试过没问题的楼主估计没弄清楚我的意思,我那样的写法是一共有3个窗体,主窗体隐藏,其他2个窗体互相show来show去我头也晕了,准备下班闪人,呵呵
static bool bclose=false;
static void Main()
{
aaa:Application.Run(new Form1());
Application.Run(new Form2());
System.Console.WriteLine(bclose);
if(!bclose)
{goto aaa;}
}
fm1的
private void button1_Click(object sender, System.EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, System.EventArgs e)
{
Test.Form1.bclose=true;
this.Close();
}
fm2的
private void button1_Click(object sender, System.EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, System.EventArgs e)
{
Test.Form1.bclose=true;
this.Close();
}
FORM1
static void Main()
{
Application.Run(new Form1());
}private void button1_Click(object sender, System.EventArgs e)
{
Form2 fm2=new Form2();
fm2.Owner=this;
fm2.Show();
this.Hide();
}private void button2_Click(object sender, System.EventArgs e)
{
Application.Exit();
}
FORM2的
private void button1_Click(object sender, System.EventArgs e)
{
Form1 fm1=(Form1)this.Owner;
fm1.Show();
this.Close();
}
/// 应用程序的主入口点。
/// </summary>
[STAThread]
public static void Main()
{
Form1 frm1=new Form1();
frm1.Show();
Application.Run();
}/// <summary>
/// 关闭Form1和显示Form2
/// </summary>
private void button1_Click(object sender, System.EventArgs e)
{
Form2 frm2=new Form2();
frm2.Show();
this.Close();
}
/// <summary>
/// 关闭全部窗口
/// </summary>
private void button2_Click(object sender, System.EventArgs e)
{
Application.Exit();
}--------------------------
Form2 代码:/// <summary>
/// 关闭Form2和显示Form1
/// </summary>
private void button1_Click(object sender, System.EventArgs e)
{
this.Close();
Form1 frm1=new Form1();
frm1.Show();
}
/// <summary>
/// 关闭全部窗口
/// </summary>
private void button2_Click(object sender, System.EventArgs e)
{
Application.Exit();
}