如何在一个窗体中调用另外两个窗体中的实例?
编程语言编程语言:C#环境:windows窗体应用程序程序要求:1.做3个窗体,分别命名为Form1,Form2,Form3;2.在Form1中放一个button,命名为...
编程语言
编程语言:C#
环境:windows 窗体应用程序
程序要求:
1.做3个窗体,分别命名为 Form1,Form2,Form3;
2.在Form1中放一个button,命名为button1.放一个CheckBox,命名为CheckBox1.
3.在Form2中放一个button,命名为button2.放一个CheckBox,命名为CheckBox2.
4.在Form3中放一个button,命名为button3.
5.点击button1,要求弹出Form2.
6.点击button2,要求弹出Form3.
7.点击button3,要求获取CheckBox2.Checked属性,然后将CheckBox1.Checked属性设置为CheckBox2.Checked。
问题:该如何写button3的代码,相对应button1和button2中该如何写。
说明:本例不具有实际意义,但是我做的程序中有这样的要求,我现在将问题简化下来。我不懂的地方是,如何在Form3中同时调用Form1和Form2中已经实例化的类?或变量?谢谢,麻烦帮忙给解决一下。纠结好多天了。目的在于调用实例,不在于值传送。
因为我要调用的控件不仅仅是一个CheckBox,还包括控件,变量,和其他类实例。
所以以下两位的回答,虽然能解决上面的问题,但是也都没有完全解决我的问题。
我从网上找了一个方法。
就是将Form1和Form2作为参数传进Form3中。谢谢两位。
下面贴一下代码,此为解决方案,不是问题了。
Form1:
Form2:
}
Form3:
分只能给一个。对另一位说抱歉。 展开
编程语言:C#
环境:windows 窗体应用程序
程序要求:
1.做3个窗体,分别命名为 Form1,Form2,Form3;
2.在Form1中放一个button,命名为button1.放一个CheckBox,命名为CheckBox1.
3.在Form2中放一个button,命名为button2.放一个CheckBox,命名为CheckBox2.
4.在Form3中放一个button,命名为button3.
5.点击button1,要求弹出Form2.
6.点击button2,要求弹出Form3.
7.点击button3,要求获取CheckBox2.Checked属性,然后将CheckBox1.Checked属性设置为CheckBox2.Checked。
问题:该如何写button3的代码,相对应button1和button2中该如何写。
说明:本例不具有实际意义,但是我做的程序中有这样的要求,我现在将问题简化下来。我不懂的地方是,如何在Form3中同时调用Form1和Form2中已经实例化的类?或变量?谢谢,麻烦帮忙给解决一下。纠结好多天了。目的在于调用实例,不在于值传送。
因为我要调用的控件不仅仅是一个CheckBox,还包括控件,变量,和其他类实例。
所以以下两位的回答,虽然能解决上面的问题,但是也都没有完全解决我的问题。
我从网上找了一个方法。
就是将Form1和Form2作为参数传进Form3中。谢谢两位。
下面贴一下代码,此为解决方案,不是问题了。
Form1:
Form2:
}
Form3:
分只能给一个。对另一位说抱歉。 展开
展开全部
挺有意思的实验!!;-)
1)在Form1中
public partial class Form1 : Form
{
//添加一个静态实例变量
public static Form1 Instance = null;
public Form1()
{
InitializeComponent();
instance = this;
}
//公开checkBox1的Checked属性
public bool Checked
{
get{ return checkBox1.Checked;}
set { checkBox1.Checked = value;}
}
//关闭窗口时,销毁静态实例变量
protected override void OnFormClosed(FormClosedEventArgs e)
{
base.OnFormClosed(e);
Instance = null;
}
//……其余代码略
}
2)在Form2中
public partial class Form2 : Form
{
//添加一个静态实例变量
public static Form2 Instance = null;
public Form2()
{
InitializeComponent();
instance = this;
}
//公开checkBox2的Checked属性
public bool Checked
{
get{ return checkBox2.Checked;}
set { checkBox2.Checked = value;}
}
//关闭窗口时,销毁静态实例变量
protected override void OnFormClosed(FormClosedEventArgs e)
{
base.OnFormClosed(e);
Instance = null;
}
//……其余代码略
}
3)在Form3中
public partial class Form3 : Form
{
private void button3_Click(object sender, EventArgs e)
{
//设置Form1上checkBox1
Form1.Instance.Checked = true;
//获取Form2上checkBox2的属性
bool b = Form2.Insance.Checked;
}
//……其余代码略
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询