【发布时间】:2016-06-25 21:37:19
【问题描述】:
我正在尝试反转 FlowLayoutPanel 中控件的顺序。
我尝试将 ControlCollection 转换为数组,然后将其反转并清除 ControlCollection,然后读取控件。但这似乎并没有达到预期的效果。
这是我使用的代码:
private static void ReverseLayout(Control control, bool suspend = true) {
if (suspend) control.SuspendLayout();
Control[] newCC = new Control[control.Controls.Count];
control.Controls.CopyTo(newCC, 0);
Array.Reverse(newCC);
control.Controls.Clear();
//control.Controls.AddRange(newCC);
for (int i = 0; i < newCC.Length; i++) {
newCC[i].Location = new System.Drawing.Point(); // maybe? no :\
newCC[i].TabIndex = i; // maybe? no :\
control.Controls.Add(newCC[i]);
}
if (suspend) control.ResumeLayout(false);
}
【问题讨论】:
-
根据docs有一个属性描述如下“获取或设置一个指示FlowLayoutPanel控件流向的值”。不幸的是,文档对我来说是坏的,不显示名称。我猜它被称为 FlowDirection 并且值是 LeftToRight 等。但是使用智能感知来查看它是否可以洞察正确的值
-
这只会改变之后添加的对象将显示在面板中的位置。已经存在的物体不会被触摸。
标签: c# flowlayoutpanel controlcollection