为什么我可以在IDE中设置这些属性但不在代码中设置?

B. *_*non 0 c# datagridview visual-studio-2010 winforms

我可以在设计时为DGV设置最大和最小尺寸高度和宽度值,但不能在代码中设置.这将无法编译,因为"无法修改'System.Windows.Forms.Control.MaximumSize'的返回值,因为它不是变量":

dataGridViewPlatypi.MaximumSize.Height = dataGridViewPlatypi.Size.Height;
dataGridViewPlatypi.MinimumSize.Height = dataGridViewPlatypi.Size.Height;
dataGridViewPlatypi.MaximumSize.Width = dataGridViewPlatypi.Size.Width;
dataGridViewPlatypi.MinimumSize.Width = dataGridViewPlatypi.Size.Width;
Run Code Online (Sandbox Code Playgroud)

如果MaximumSize不是变量,为什么我可以在IDE中修改它?

Ed *_* S. 8

请仔细阅读错误消息:

"无法修改'System.Windows.Forms.Control.MaximumSize'的返回值,因为它不是变量":

Control.MaximumSize是类型Size,它是一种值类型.该属性返回对象的副本,Size然后您继续尝试修改其属性.即使你可以修改它们也没有任何成就,因为你只会改变副本.

您需要将属性设置为一个全新的值,而不仅仅是更改副本的属性.

dataGridViewPlatypi.MaximumSize = new Size(width, height);
Run Code Online (Sandbox Code Playgroud)