C#窗体传值 250
各位大神,请教一个问题。现在我是想:按下Form1的增加按钮时弹出Form2然后在Form2的textbox1中输入一个数字比如1,然后再按下Form1的查询按钮,弹出F...
各位大神,请教一个问题。现在我是想 : 按下Form1的 增加按钮时 弹出Form2 然后在 Form2的textbox1中输入一个数字 比如1,然后再按下Form1的 查询按钮,弹出Form3 此时Form3的textbox1是显示那个数字1的。这种功能能够实现吗(我C#基础不好,初学还是个学生)如果不能实现,是不是我编程思想出了问题,或者可以用其他思路实现类似功能?
少说了一句。。弹出Form2 时,输完1后,要按下button1,我是想能不能就这样传值给Form3的 textbox1 展开
少说了一句。。弹出Form2 时,输完1后,要按下button1,我是想能不能就这样传值给Form3的 textbox1 展开
5个回答
展开全部
这个是完全可以实现的。
但是这个流程太反人类了,应该想设计如何简单,操作方便点。
建议只建一个窗口即可,其它的信息可以在窗体中增加一个列表或文本框显示出来。没必要设计得这么复杂且难用。
想要实现你所说的功能可以用这样的方法实现:
假如新建了窗口A和窗口B,当我要弹出窗口B并且与窗口A通讯。可以在窗口B中定义窗口A的对象,然后用该对象进行对窗口A中的成员或方法进行修改即可。
1.在窗口A中新建窗口B对象,并将窗口A传递到窗口B中。
private void Button_Click(object sender, EventArgs e)
{
var frm2 = new DataForm (this);//这是窗口A中的方法,调用了DataForm(窗口B),并将窗口A传递给它。
frm2.ShowDialog();
}
2.在窗口B中声明窗口A的对象,然后将刚刚传递进来的窗口A对象赋给它。
private Form1 f1;//声明窗口A的全局对象,
public DataForm(Form1 frm1)
{
InitializeComponent();
f1 = frm1;//由传递进来的窗口A的对象赋给全局变量f1.
}
这样,无论在窗口B中哪里都可以调用窗口A中的变成或方法。
3.直接在窗口B中调用全局对象f1,即可访问窗口A的成员或方法。
f1.UpDateEPC(listStr, time);//调用窗口A的方法。
注意窗口A的成员或方法得声明为公用(public)的才可以调用。
4.在窗口B调用窗口A的方法中,可以执行你想要的操作,比如更新到TextBox什么的。
实测有效的,其它的可以根据这个来写,VS中的WindowsForm程序 跨窗体访问就是这样了.
希望能帮到你。
更多追问追答
追问
呃,在窗口A中弹出B窗口这种传值方式我会。。。可是我这个作业就是要这样写(是先增加信息后查询的),我的意思是简化版来的
追答
你按窗口1中的增加按钮,弹出窗口2,在窗口2的TextBox输入后按下button1,在button1事件中将窗口2对象传递到窗口3,然后在窗口3中你访问刚才在窗口2中输入的变量,显示出来就可以了。
本来这个设计就复杂 呀,不能再简化了。
是谁出的题让你们这样设计?
展开全部
在Form2里直接this.tag = "你要搞的哪个1";。然后在Form1代码里 string str = form2.tag as String 就可以取出来的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实就是mvvm模型 你去查找一下mvvm就知道怎么做了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-10-13
展开全部
把form2,form3隐藏,然后form1里的button里把隐藏改为显示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
像vb的界面
追答
用隐藏和显示。😂
追问
是VS的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询