LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】winform跨窗体传值

admin
2023年5月15日 22:0 本文热度 462

方式一:使用变量传值


使用静态变量传值,可实现双向传值,但静态变量在类加载的时候分配内存,存储于方法区,一般不会被销毁,在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。

主窗体frmMain中代码
public partial class frmMain : Form{ //声明name为公共静态变量 public static string name= ""; //给静态变量赋值 name= "张三"; }

子窗体frmChild中代码

private void frmChild_Load(object sender, EventArgs e)
{    
this.txtname.Text= frmMain.name.Trim();     
//赋值    
frmMain.name= "李四"; 
}


使用公共变量,只可实现单向传值。

主窗体frmMain中代码
public partial class frmMain : Form
{  
//声明name为公共变量,并赋值  
public string name= "张三";  
//单击‘行为’按钮的时候会给窗体传值  
private void btnChild_Click(object sender, EventArgs e)  
{    
frmChild f= new  frmChild();    
//变量传值 ,注意顺序写在ShowDialog()方法之前    
f.stationID = this.name;    
f.ShowDialog();  
}
}

子窗体frmChild中代码

public partial class frmChild: Form
{  
//定义公共属性  
public string stationID = "";
}



方式二:使用委托传值

通过子窗体声明委托,父窗体实现委托,通过子窗体向父窗体传值。

窗体设计如下:

子窗体代码如下:
public partial class frmChild : Form 
{     
//1、声明一个委托     
public delegate void setTextValue(string txt);     
//2、声明一个委托类型的事件     
public event setTextValue setFormTextValue;     
public frmChild()     
{         
InitializeComponent();     
}      
private void button1_Click(object sender, EventArgs e)     
{         
setFormTextValue(textBox1.Text);     
} 
}

父窗体代码如下:

public partial class frmFather : Form
{    
public frmFather()    
{        
InitializeComponent();    
}    
private void Form1_Load(object sender, EventArgs e)    
{        
frmChild c = new frmChild();        
c.setFormTextValue += setLable;        
c.Show();    
}    
public void setLable(string txt)    
{        
this.label1.Text = txt;    
}
}

输入字符,点击发送按钮,运行结果如下:


思考一下,如果通过委托实现父窗体向子窗体传值?


该文章在 2023/5/15 22:00:50 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved