【问题标题】:Why can't I set the margin of a FlowLayoutPanel programmatically?为什么我不能以编程方式设置 FlowLayoutPanel 的边距?
【发布时间】:2012-11-26 07:24:34
【问题描述】:

我正在尝试在 C# 中以编程方式设置 FlowPanel 的边距,但它告诉我无法设置它,因为它不是变量。

这里告诉我该属性获取或设置控件之间的空间。

但是,一旦我尝试设置该属性,它就会告诉我它不是变量并且项目不会编译。

那么,这里发生了什么?这个属性是在幕后以一种奇怪的方式声明的吗?是 Visual Studio 的问题吗?我很茫然。

【问题讨论】:

标签: c# .net winforms margin


【解决方案1】:

您必须分配一个新值:

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

【讨论】:

  • 我可以看到它是如何工作的,但我想知道阻止分配的属性本身的独特之处。
  • @elucid8 我更新了我的答案,提供了更多信息。
猜你喜欢
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
相关资源
最近更新 更多