我有一个名为“tables”的类和一个winform“Form1”,表单上有一个名为“table3”的按钮。“表”类中的代码在单独的线程中运行,需要访问主窗体上的按钮,这就是我所拥有的:
Form1.ActiveForm.BeginInvoke(
(Action)(() =>
{
Form1.ActiveForm.Controls["table3"].Text = "test";
}));
我得到一个空引用异常。按钮的名称是正确的。还有其他问题,我不确定它可能是什么:/
试试这个:
Invoke(new Action<object>((args) =>
{
Form1.ActiveForm.Controls["table3"].Text = "test";
}));
如果您收到 NullReferenceException,则引用为空。所以要么Form1.ActiveForm == null
,要么Form1.ActiveForm.Controls == null
,要么Form1.ActiveForm.Controls["table3"] == null
。
我假设Form1
是类的名称并且ActiveForm
是静态属性。