C# 利用委托完成窗体间传数据
主窗体:form1
参数设置窗体:form4
首先在form4中设置委托和事件
public delegate void TransfDelegate(string value,double dv, int naction,string addr, string id);
public event TransfDelegate TransfEvent;
按钮触发事件
private void button1_Click(object sender, EventArgs e)
{
if (textBoxName.Text.Length == 0)
{
MessageBox.Show("姓名不能为空");
return;
}
if (textBoxWeight.Text.Length == 0)
{
MessageBox.Show("体重不能为空");
return;
}
name = textBoxName.Text;
weight = Convert.ToDouble(textBoxWeight.Text);
action = comboBoxAction.SelectedIndex;
address = comboBoxAddress.SelectedItem.ToString();
deviceid = comboBoxDevice.SelectedItem.ToString();
//触发事件,传递样本名字,体重,动作,地址,设备号
TransfEvent(name, weight, action, address, deviceid);
this.Close();
}
主窗体中按钮事件打开参数设置窗体form4,在事件中处理传递过来的参数
private void buttonSave_Click(object sender, EventArgs e)
{
fillPatientInfo();
//save data to database
......
}
private void fillPatientInfo()
{
Form4 logForm = new Form4();
logForm.TransfEvent += frm_TransfEvent;
logForm.ShowDialog();
}
//事件处理方法
void frm_TransfEvent(string value, double dv, int naction, string addr, string id)
{
name = value;
weight = dv;
action = naction;
address = addr;
deviceid = id;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步