【发布时间】:2012-11-26 07:24:34
【问题描述】:
我正在尝试在 C# 中以编程方式设置 FlowPanel 的边距,但它告诉我无法设置它,因为它不是变量。
这里告诉我该属性获取或设置控件之间的空间。
但是,一旦我尝试设置该属性,它就会告诉我它不是变量并且项目不会编译。
那么,这里发生了什么?这个属性是在幕后以一种奇怪的方式声明的吗?是 Visual Studio 的问题吗?我很茫然。
【问题讨论】:
我正在尝试在 C# 中以编程方式设置 FlowPanel 的边距,但它告诉我无法设置它,因为它不是变量。
这里告诉我该属性获取或设置控件之间的空间。
但是,一旦我尝试设置该属性,它就会告诉我它不是变量并且项目不会编译。
那么,这里发生了什么?这个属性是在幕后以一种奇怪的方式声明的吗?是 Visual Studio 的问题吗?我很茫然。
【问题讨论】:
您必须分配一个新值:
flowLayoutPanel2.margin = new Padding(5);
更新:虽然 Padding 没有这样的注释,但是 Point 也是一个结构以及为什么需要将其设置为新的 Padding 的解释(以下描述中的 Point):
Point [Padding]是一个结构体,也就是说它是一个值类型。如果你 访问 Point 中的属性,则返回该属性的副本。 因此,更改从返回的 Point 的 X 或 Y 属性 Location 属性不会影响 Left、Right、Top 或 Bottom 表单的属性值。要调整这些属性,请设置每个 单独的属性值,或使用新的设置 Location 属性 点。
来源:
http://msdn.microsoft.com/en-us/library/ms159414.aspx
Public Structure Padding
填充:
http://msdn.microsoft.com/en-us/library/system.windows.forms.padding.aspx
【讨论】: