質問: c# flowlayoutpanelにて 度々お世話になります。 flowlayoutpanelでコントロールを追加したとき、左から 順に配置されますが(lefttoright)、追加したコントロールが センタリングで表示されるようにするにはどうしたらよいでしょうか。 既存だと、こんな感じだと思います。 ********************************* *■■■ ■■■ * ********************************* これを、下記のようにしたいのです。 ********************************* * ■■■ ■■■ * ********************************* flowlayoutpoanel幅いっぱいに詰めてしまうと、 センタリングをしても意味がないですが、一つか2つの時は 左から順に配置されるまま、センタリングを行いたいのです。 初心者ですみません。 以上、よろしくお願いいたします。
回答: 右端のコントロールから flowlayoutpanelの右端までの 半分を 左端のコントロールのmargin.leftに加算するといったことで可能なようです 元のフォームの大きさを可変にできるのであれば sizechangeイベントでの再計算が必要ですが // 右端のコントロールが button2と仮定 int w = button2.loaction.x; // button2の左上を取得 w += button2.width; // 幅を加算 w += button2.margin.right; // マージンの右側を加算 w = flowlayoutpanel1.clientrect.width - w; // フォローパネルの幅から計算値を減算 w /= 2; // 片側用に2で除算 // margin.leftに直接 加算が出来なかったので ... padding pad = button1.margin; pad.left += w; button1.margin = pad; といった具合で ...