2
m.pen = Pens.Red; //No error

m.pen.EndCap = System.Drawing.Drawing2D.LineCap.Square;        //error

ここで、mは、ペンをグローバルとして保持する別のクラスのオブジェクトです。

endcapまたはstartcapを設定しようとすると、次のようなエラーが表示されます。

「権限が無効なため、ペンを変更できません。」

誰もがこれを修正する方法を知っています。

4

3 に答える 3

7

Pensによって返される Pen オブジェクトは不変です。つまり、それらのプロパティを変更することはできません。Pen のオブジェクトを作成してみます。

Pen pen =new Pen(Color.Red,20f);
pen.EndCap = System.Drawing.Drawing2D.LineCap.Square;
于 2012-06-09T09:50:49.603 に答える
3

これを試して:

m.pen = new Pen(Color.Red);
于 2012-06-09T09:51:34.643 に答える
1

Pens.Red は、フレームワークによって初期化される静的メンバーであり、変更することはできません。

次のように独自の Pen を宣言する必要があります。

m.pen = new Pen(Color.Red);
m.pen.EndCap = System.Drawing.Drawing2D.LineCap.Square;
于 2012-06-09T09:52:13.327 に答える