子窗体frmGroup中代码
public partial class frmGroup : Form
{
//定义公共属性
public string stationID = "";
}
特点 : 单向传值,只能主窗体给子窗体传值,实现简单
方式三: 使用委托传值
先来看子窗体frmGroup中代码
namespace Siemens.Simatic.GUIClient.MESClient
{
//1、声明一个委托
public delegate void setTextValue(string textValue,bool flag);
public partial class frmGroup : Form
{
//2、声明一个委托类型的事件
public event setTextValue setFormTextValue;
public string groupName = "";
public bool flagBtnGroup = false;
public frmGroup()
{
InitializeComponent();
}
//轮询‘行为'按钮(相当于按钮单击事件)
private void tmrBtn_Tick(object sender, EventArgs e)
{
if (sender is ButtonX) {
ButtonX butX = (ButtonX)sender;//判断触发事件的是不是Button
groupName = butX.Text.Trim();
flagBtnGroup = true;
//3、准备要回传的数据。
setFormTextValue(this.groupName.Replace(" ", ""), this.flagBtnGroup );
this.Close();
return;
}
}
主窗体frmMain中代码
private void btnGroup_Click(object sender, EventArgs e)
{
frmGroup frmGro = new frmGroup();
//4、初始化事件
frmGro .setFormTextValue += new setTextValue(frmGro _setFormTextValue);
//变量传值 ,注意顺序写在ShowDialog()方法之前
frmGro .stationID = this.terminalID;
frmGro .ShowDialog();
}
//5、事件具体实现
public void frmGro _setFormTextValue(string textValue,bool flag)
{
this.newGroupName = textValue;
this.flagBtnGroup = flag;
if (!string.IsNullOrEmpty(newGroupName))
{
……
}
}
特点 :适合子窗体数据实时回传父窗体。
方式四:使用构造函数传递一个数值










