从窗体向主窗体传递消息
从窗体向主窗体传递消息分两种:一种是主窗体主动等待从窗体过来的消息并处理,比如添加账号,添加完账号后要关闭当前窗体,主窗体检查从窗体的关闭状态进而做处理;另种是从窗体主动向主窗体“汇报情况”,主窗体是一种被动接收状态,这种情况下会涉及到两种极为重要的编程技巧:对象注入和“回调”的使用。
主窗体主动等待
主窗体主动等待也可以使用公有属性和公有方法两种方法。
最终效果图,从窗体中点击确定后,在主窗体中显示从窗体发送过来的消息。
下面看下编程实现,代码项目:FromOtherToMain。
1. 定义一个从窗体变量,点击“显示从窗口”按钮时等待从窗体的返回结果,然后把消息收集回来。
private frmOther otherForm;
if (otherForm.ShowDialog() == DialogResult.OK)
{
//使用公有属性
//lblReceive.Text = otherForm.UseOtherInput;
//使用公有方法
string rec_message = null;
otherForm.UserOtherInputFuc(ref rec_message);//注意这里传引用,收于收集从窗体的消息。
lblReceive.Text = rec_message;
return;
}
2. 从窗体公有属性和公有方法的实现