0

假设您正在尝试设置标签的文本。通过这样做,您调用了一个函数 SetText(labelname, "texthere")。SetText 的“标题”是什么?

我正在努力:

private void SetText(object foo, string bar) 

但这不起作用

编辑:我有这个:

private void SetText(Control thing, string text)
{
if (this.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
Invoke(d, new object[] { text });
}
else
{
thing.Text = text;
}
}

但它说明了无效的参数数量。我需要改变什么?

4

2 回答 2

1

使用Control 类而不是 Object,因为前者定义了控件(具有可视化表示的组件)的基类并公开了 Text 属性。

private void SetText(Control control, String text)
{
    control.Text = text;
}

像这样,您不需要装箱/投射对象。否则,您还应该指定对象的类型,因为您可以传递文本框、标签等...

于 2013-01-16T22:39:23.733 回答
0

可能是因为您引用了错误的对象,请尝试:

private void SetText(ref object foo, string bar)

注意ref关键字。

于 2013-01-16T22:37:49.907 回答