15

値を返すメソッドがあり、この値をWindowsフォームアプリケーションのラベルの新しい場所にします。しかし、ラベルの場所は変数ではないと言われています。objectAはラベルの名前です。

objectA.Location.X = (int)A.position;
objectA.Refresh();

どうすればこれを行うことができますか?

4

6 に答える 6

22

Leftプロパティを使用して、Label

objectA.Left = 100;
于 2009-06-09T08:01:29.643 に答える
20

Locationプロパティは、値型であるPoint型です。したがって、プロパティは場所の値のコピーを返すため、このコピーにXを設定してもラベルには影響しません。コンパイラはそれを認識し、エラーを生成して修正できるようにします。代わりにそれを行うことができます:

objectA.Location = new Point((int)A.position, objectA.Location.Y);

(Refreshの呼び出しは役に立ちません)

于 2009-06-09T08:00:46.557 に答える
9

これは私にはうまくいきます

this.label1.Location = new Point(10, 10);

Refresh や SuspendLayout などを呼び出す必要さえありません。

これはあなたを助けるはずです

this.label1.Location = new Point((int)A.position, (int)A.otherpos);
于 2009-06-09T08:04:37.190 に答える
1

objectname.Location = System.Drawing.Point(100,100);

于 2009-07-31T16:14:06.017 に答える
0
objectA.Location = new Point((int)A.position, objectA.Location.Y);
objectA.Refresh();

場所は変数ではなく、単なるパブリックプロパティです。親を更新するイベントがない限り、プロパティを介して変数を変更することは悪い考えです。

于 2009-06-09T08:01:09.567 に答える
0

構造体への直接参照がある場合にのみ、構造体のプロパティを設定できます。

Point loc = objectA.Location;
loc.X = (int)A.position;
objectA.Location = loc;
于 2011-10-28T18:05:26.183 に答える