2

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);
  }
4

1 に答える 1