父窗体调用子窗体内的一个方法,方法改变一个文本框的值(反射)
gulx 2012-04-09 10:10:13 父窗体调用一个已打开的子窗体,用反射执行激活子窗体的一个方法,该方法改本一个文本框的值,我已能实现调用到子窗体内的方法,可是文本框的值就是改变不了,放一个MessageBox也能弹出来,代码如下:
父窗体
private void dockPanel1_ActiveDocumentChanged(object sender, EventArgs e)
{
DockPanel aa = (WeifenLuo.WinFormsUI.Docking.DockPanel)(sender);
Form CC = (Form)aa.ActiveDocument;
Type type = CC.GetType();
object obj = type.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, new object[] { });
//调用没有返回值的方法
//运行之后的结果[Hello World]
try
{
type.InvokeMember("button2_Click1", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, obj, null);
}
catch (Exception EE)
{
MessageBox.Show(EE.Message, "系统提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
子窗体
public void button2_Click1()
{
this.textBox1.Text = "111";
MessageBox.Show("eee");
}