winforms 无法对Pen进行更改,因为权限无效

yzckvree  于 2023-10-23  发布在  其他
关注(0)|答案(4)|浏览(117)
m.pen = Pens.Red; //No error

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

其中m是另一个类的对象,它将Pen作为全局对象。
当我试图设置endcap或startcap时,它显示错误为
“无法更改Pen,因为权限无效。”
任何人都知道如何纠正这一点。

9rbhqvlz

9rbhqvlz1#

Pens返回的Pen对象是不可变的,这意味着它们的属性不能更改。尝试创建一个Pen对象。

Pen pen =new Pen(Color.Red,20f);
pen.EndCap = System.Drawing.Drawing2D.LineCap.Square;
ogq8wdun

ogq8wdun2#

试试这个:

m.pen = new Pen(Color.Red);
tzdcorbm

tzdcorbm3#

Red是一个由框架初始化的静态成员,你不能修改它。
你必须像这样声明你自己的笔:

m.pen = new Pen(Color.Red);
m.pen.EndCap = System.Drawing.Drawing2D.LineCap.Square;
igetnqfo

igetnqfo4#

获得此异常的另一个原因是释放从Pens类创建的Pen**对象。**考虑以下情况:

Pen pen = Pens.Red;
// Use the pen object here...
pen.Dispose(); // throws the same exception

如果你想释放你的pen对象,那么通过Pen构造函数创建它,就像

Pen pen = new Pen(Color.Red, 1);

相关问题