2.单击按钮时,发生打开form2的事件;
3.form2中存在TEXTBOX1,其中存在一个计算函数;
4.FORM2.TEXTBOX1的计算函数能够直接提取FORM1的变量;
5.并且能够在单击FORM1的按钮后,弹出FORM2窗体的同时,在FORM2.TEXTBOX1中直接显示计算结果。
///////////////////////////////////////////////////////////////////////////////
请问最后一步怎么实现?
C#新人,非计算机专业,小白。。。
13 个解决方案
#1
在构造函数里传参数进去,或者Form2设一个public的成员来当参数
如果参数不止1个,那么最好封装成一个参数类进行传递
如果参数不止1个,那么最好封装成一个参数类进行传递
#3
///////////////////////////////////////////////////////
我想达成的效果是,单击FORM1里面的BUTTON按钮,就直接能够在FORM2里的TEXTBOX1里面显示结果,
现在我做的效果是,虽然能计算,但是要在FORM2中继续单击任意按键,才能让FORM2里的TEXTBOX1显示结果。
我想省略掉在“FORM2中单击任意按键→显示结果”这一过程。
#4
方法很多,先说我的建议
一: 在form2增加一个构造方法把参数传去,
然后在构造方法里调用那个函数,
最后把结果显示在控件里。如下:
public form2(object param)
{
TEXTBOX1.text = fun(param);
}
在Form1里的Button的Click事件里写 Form2 frm = new Form2(具体值);
frm.show();
二:
如果不喜欢玩构造方法,那就增加属性或public变量.如下:
在Form2里增加public object Param;变量
在onload事件里调用函数
Form2里:
public object Param
protected override void OnLoad(EventArgs e)
{
TEXTBOX1.Text = fun(Param)
}
在Form1里: Form2 frm = new Form2();
frm.Param = 具体值
frm.show();
一: 在form2增加一个构造方法把参数传去,
然后在构造方法里调用那个函数,
最后把结果显示在控件里。如下:
public form2(object param)
{
TEXTBOX1.text = fun(param);
}
在Form1里的Button的Click事件里写 Form2 frm = new Form2(具体值);
frm.show();
二:
如果不喜欢玩构造方法,那就增加属性或public变量.如下:
在Form2里增加public object Param;变量
在onload事件里调用函数
Form2里:
public object Param
protected override void OnLoad(EventArgs e)
{
TEXTBOX1.Text = fun(Param)
}
在Form1里: Form2 frm = new Form2();
frm.Param = 具体值
frm.show();
#5
/////////////////先码
#6
最后说一句,千万不要你中有我,我中有你,这样会高耦合
就是Form1里用到了Form2的变量和属性,Form2中也用到了Form1中的变量和属性
就是Form1里用到了Form2的变量和属性,Form2中也用到了Form1中的变量和属性
#7
你在Form2的Shown事件里进行显示就行啊
#8
在form2的load函数中调用 函数,显示就行了
#9
单击FORM1的按钮后->弹出FORM2窗体->修改FORM2.TEXTBOX1的值
不就是这样吗?
#10
C#中:怎么实现同时调用一个dataGridView表(领料单)中的5条数据(订单号,注:订单号一样),同时在另一个dataGridView表(库存表)中实现(减法):库存数量--领料单中的数量,谢谢各位大佬!
#11
我的一般做法是直接把 form1 做为变量给 form2,同时将 form1 里的 textbox 设置为public,这术你在 form2 里想怎么改就怎么改。
#12
目前我想到的有两个方案,1 用传参的形式 FORM1 和 FORME 可以互相通讯。2 用句柄原理也可以的,可以获取到任何FORM 的句柄。
#13
class Form1:Form
{
public Form1()
{
InitializeComponent();
}
void OpenForm2()//打开Form2
{
Form2 f2 = new Form2(this);//把Form1当参数传过去,在Form2中就可以使用Form1的变量和控件了
}
---------------------------------------
public class Form2:Form
{
public Form1 f1;
public Form2(Form1 f1)
{
this.f1 = f1;
InitializeComponent();
}
private void UseControls()//调用Form1的控件
{
f1.控件.....or f1.变量......
}
}
#1
在构造函数里传参数进去,或者Form2设一个public的成员来当参数
如果参数不止1个,那么最好封装成一个参数类进行传递
如果参数不止1个,那么最好封装成一个参数类进行传递
#2
#3
///////////////////////////////////////////////////////
我想达成的效果是,单击FORM1里面的BUTTON按钮,就直接能够在FORM2里的TEXTBOX1里面显示结果,
现在我做的效果是,虽然能计算,但是要在FORM2中继续单击任意按键,才能让FORM2里的TEXTBOX1显示结果。
我想省略掉在“FORM2中单击任意按键→显示结果”这一过程。
#4
方法很多,先说我的建议
一: 在form2增加一个构造方法把参数传去,
然后在构造方法里调用那个函数,
最后把结果显示在控件里。如下:
public form2(object param)
{
TEXTBOX1.text = fun(param);
}
在Form1里的Button的Click事件里写 Form2 frm = new Form2(具体值);
frm.show();
二:
如果不喜欢玩构造方法,那就增加属性或public变量.如下:
在Form2里增加public object Param;变量
在onload事件里调用函数
Form2里:
public object Param
protected override void OnLoad(EventArgs e)
{
TEXTBOX1.Text = fun(Param)
}
在Form1里: Form2 frm = new Form2();
frm.Param = 具体值
frm.show();
一: 在form2增加一个构造方法把参数传去,
然后在构造方法里调用那个函数,
最后把结果显示在控件里。如下:
public form2(object param)
{
TEXTBOX1.text = fun(param);
}
在Form1里的Button的Click事件里写 Form2 frm = new Form2(具体值);
frm.show();
二:
如果不喜欢玩构造方法,那就增加属性或public变量.如下:
在Form2里增加public object Param;变量
在onload事件里调用函数
Form2里:
public object Param
protected override void OnLoad(EventArgs e)
{
TEXTBOX1.Text = fun(Param)
}
在Form1里: Form2 frm = new Form2();
frm.Param = 具体值
frm.show();
#5
/////////////////先码
#6
最后说一句,千万不要你中有我,我中有你,这样会高耦合
就是Form1里用到了Form2的变量和属性,Form2中也用到了Form1中的变量和属性
就是Form1里用到了Form2的变量和属性,Form2中也用到了Form1中的变量和属性
#7
你在Form2的Shown事件里进行显示就行啊
#8
在form2的load函数中调用 函数,显示就行了
#9
单击FORM1的按钮后->弹出FORM2窗体->修改FORM2.TEXTBOX1的值
不就是这样吗?
#10
C#中:怎么实现同时调用一个dataGridView表(领料单)中的5条数据(订单号,注:订单号一样),同时在另一个dataGridView表(库存表)中实现(减法):库存数量--领料单中的数量,谢谢各位大佬!
#11
我的一般做法是直接把 form1 做为变量给 form2,同时将 form1 里的 textbox 设置为public,这术你在 form2 里想怎么改就怎么改。
#12
目前我想到的有两个方案,1 用传参的形式 FORM1 和 FORME 可以互相通讯。2 用句柄原理也可以的,可以获取到任何FORM 的句柄。
#13
class Form1:Form
{
public Form1()
{
InitializeComponent();
}
void OpenForm2()//打开Form2
{
Form2 f2 = new Form2(this);//把Form1当参数传过去,在Form2中就可以使用Form1的变量和控件了
}
---------------------------------------
public class Form2:Form
{
public Form1 f1;
public Form2(Form1 f1)
{
this.f1 = f1;
InitializeComponent();
}
private void UseControls()//调用Form1的控件
{
f1.控件.....or f1.变量......
}
}