【发布时间】:2026-02-08 13:20:02
【问题描述】:
我在public 方法中有以下代码,但是如何在静态方法中使用它? o 是 static TextBox?
Invoke((MethodInvoker)delegate {
o.Text = str + Environment.NewLine;
});
我已经阅读了 System.Reflection 命名空间中的 MethodInfo 类,但似乎没有任何效果。只是为了向你展示,我想要这样的东西:
public static void writeOut(string str)
{
Invoke((MethodInvoker)delegate {
o.Text = str + Environment.NewLine; // runs on UI thread
});
}
该代码不起作用,但我想知道如何做一些可以在静态方法中调用 invoke 的东西,例如上面的 sn-p。
【问题讨论】:
-
"
o是static TextBox",所以是的。 -
为什么
o是静态的static TextBox? -
有点上下文,我想从不同的线程更改文本框的内容,我想从静态方法中做到这一点。所以我做
private static TextBox o,然后在构造函数中我做o = output。输出是o指向的文本框。 -- imgur.com/a/GtryL -
这是一个非常糟糕的主意
-
有什么更好的方法?
标签: c# winforms static-methods invoke system.reflection