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

Objectの代わりにControlクラスを使用します。前者は、コントロール(視覚的表現を持つコンポーネント)の基本クラスを定義し、Textプロパティを公開するためです。

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

このように、オブジェクトをボックス化/キャストする必要はありません。それ以外の場合は、TextBox、Labelなどを渡すことができるため、オブジェクトのタイプも指定する必要があります...

于 2013-01-16T22:39:23.733 に答える
0

おそらく間違ったオブジェクトを参照しているため、試してください:

private void SetText(ref object foo, string bar)

refキーワードに注意してください。

于 2013-01-16T22:37:49.907 に答える