c#中,如何在一个窗体调用另一个窗体的数据并计算

csdn_dddq 2017-04-01 10:10:30
1.在form1中,设立一个按钮;
2.单击按钮时,发生打开form2的事件;
3.form2中存在TEXTBOX1,其中存在一个计算函数;
4.FORM2.TEXTBOX1的计算函数能够直接提取FORM1的变量;
5.并且能够在单击FORM1的按钮后,弹出FORM2窗体的同时,在FORM2.TEXTBOX1中直接显示计算结果。
///////////////////////////////////////////////////////////////////////////////
请问最后一步怎么实现?
C#新人,非计算机专业,小白。。。
...全文
2345 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
daijinlun 2017-12-31
  • 打赏
  • 举报
回复
C#中:怎么实现同时调用一个dataGridView表(领料单)中的5条数据(订单号,注:订单号一样),同时在另一个dataGridView表(库存表)中实现(减法):库存数量--领料单中的数量,谢谢各位大佬!
lkf181 2017-12-31
  • 打赏
  • 举报
回复
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.变量......  
        }  
}  

Jason_Mao1 2017-12-31
  • 打赏
  • 举报
回复
目前我想到的有两个方案,1 用传参的形式 FORM1 和 FORME 可以互相通讯。2 用句柄原理也可以的,可以获取到任何FORM 的句柄。
Water Lee 2017-12-31
  • 打赏
  • 举报
回复
我的一般做法是直接把 form1 做为变量给 form2,同时将 form1 里的 textbox 设置为public,这术你在 form2 里想怎么改就怎么改。
wang_peng_yl 2017-04-01
  • 打赏
  • 举报
回复
最后说一句,千万不要你中有我,我中有你,这样会高耦合 就是Form1里用到了Form2的变量和属性,Form2中也用到了Form1中的变量和属性
csdn_dddq 2017-04-01
  • 打赏
  • 举报
回复
引用 2 楼 crystal_lz 的回复:
传送门
/////////////////先码
wang_peng_yl 2017-04-01
  • 打赏
  • 举报
回复
方法很多,先说我的建议 一: 在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();
csdn_dddq 2017-04-01
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
在构造函数里传参数进去,或者Form2设一个public的成员来当参数 如果参数不止1个,那么最好封装成一个参数类进行传递
/////////////////////////////////////////////////////// 我想达成的效果是,单击FORM1里面的BUTTON按钮,就直接能够在FORM2里的TEXTBOX1里面显示结果, 现在我做的效果是,虽然能计算,但是要在FORM2中继续单击任意按键,才能让FORM2里的TEXTBOX1显示结果。 我想省略掉在“FORM2中单击任意按键→显示结果”这一过程。
crystal_lz 2017-04-01
  • 打赏
  • 举报
回复
stherix 2017-04-01
  • 打赏
  • 举报
回复
在构造函数里传参数进去,或者Form2设一个public的成员来当参数 如果参数不止1个,那么最好封装成一个参数类进行传递
Poopaye 2017-04-01
  • 打赏
  • 举报
回复
引用 楼主 csdn_dddq 的回复:
5.并且能够在单击FORM1的按钮后,弹出FORM2窗体的同时,在FORM2.TEXTBOX1中直接显示计算结果。
单击FORM1的按钮后->弹出FORM2窗体->修改FORM2.TEXTBOX1的值 不就是这样吗?
xian_wwq 2017-04-01
  • 打赏
  • 举报
回复
在form2的load函数中调用 函数,显示就行了
stherix 2017-04-01
  • 打赏
  • 举报
回复
引用 3 楼 csdn_dddq 的回复:
/////////////////////////////////////////////////////// 我想达成的效果是,单击FORM1里面的BUTTON按钮,就直接能够在FORM2里的TEXTBOX1里面显示结果, 现在我做的效果是,虽然能计算,但是要在FORM2中继续单击任意按键,才能让FORM2里的TEXTBOX1显示结果。 我想省略掉在“FORM2中单击任意按键→显示结果”这一过程。
你在Form2的Shown事件里进行显示就行啊

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧