You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#反射调用方法后仅textBox1有输出,为何textBox2无内容?

问题原因与解决办法

问题核心在于你通过new Form1()创建了一个全新的Form1窗体实例,而非操作当前正在显示的那个窗体。当你调用这个隐藏的新实例的MyMethod时,textBox2.Text的赋值只会作用在这个不可见的新窗体上,自然看不到预期的效果;而textBox1的赋值是在当前窗体上执行的,所以能正常显示。

解决方法

直接使用当前窗体的实例(this)来执行反射调用,替换掉新创建的实例:

private void xx()
{
    Type type = typeof(Form1);
    System.Reflection.MethodInfo method = type.GetMethod("MyMethod");
    // 使用当前窗体实例this,而非新创建的Form1对象
    string result = (string)method.Invoke(this, null);

    textBox1.Text = result;
}

这样修改后,MyMethod会在当前显示的窗体上执行,textBox2就能正常显示指定文本了。

内容的提问来源于stack exchange,提问作者Dave603

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:24:52