四季花海
using System;using System.Reflection;using System.Windows.Forms;namespace WindowsFormsApplication1{public partial class Form1 : Form{public Form1(){InitializeComponent();}SetDelegate sd = null;private void button1_Click(object sender, EventArgs e){var _Assembly = Assembly.LoadFile(Application.StartupPath + "\\WindowsFormsApplication1.exe");var _Type = _Assembly.GetType("WindowsFormsApplication1.Form2");var _Instance = _Type.InvokeMember(string.Empty, BindingFlags.CreateInstance, null, null, null);sd += new SetDelegate(SetStatus);sd += new SetDelegate(SetStatus2);var _Event = _Type.GetField("SetProgress");_Event.SetValue(_Instance, sd); // 向事件中添加方法_Type.InvokeMember("ShowDialog", BindingFlags.InvokeMethod, null, _Instance, null); // 显示窗体2}private void SetStatus(MyProgress _MyProgress){_MyProgress.iProgressValue = 3;}private void SetStatus2(MyProgress _MyProgress){_MyProgress.iProgressValue = 42;}}}using System;using System.Windows.Forms;namespace WindowsFormsApplication1{public partial class Form2 : Form{public SetDelegate SetProgress;public Form2(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){MyProgress mp = new MyProgress();mp.iProgressValue = 0;SetProgress(mp);MessageBox.Show(mp.iProgressValue.ToString());}}public delegate void SetDelegate(MyProgress iProgressValue);public class MyProgress{public int iProgressValue = 0;}}差不多就这样,找到form2中定义的属性。或者采用接口的方式,让Form2实现IMyForm接口,然后获取实例后强转为接口对象就可以了