ハマっている「お菓子」を教えて!

度々お世話になります。

FlowLayoutPanelでコントロールを追加したとき、左から
順に配置されますが(LeftToRight)、追加したコントロールが
センタリングで表示されるようにするにはどうしたらよいでしょうか。

既存だと、こんな感じだと思います。

*********************************
*■■■ ■■■              *
*********************************

これを、下記のようにしたいのです。


*********************************
*       ■■■ ■■■       *
*********************************

FlowLayoutPOanel幅いっぱいに詰めてしまうと、
センタリングをしても意味がないですが、一つか2つの時は
左から順に配置されるまま、センタリングを行いたいのです。

初心者ですみません。

以上、よろしくお願いいたします。

A 回答 (1件)

右端のコントロールから 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;

といった具合で …
    • good
    • 0
この回答へのお礼

早速のご返答、ありがとうございました。

参考にさせていただきたいと思います。

本来なら、既存のプロパティかなんかであっても
おかしくない機能だとは思うのですが…。

ありがとうございました。
今後ともよろしくお願いいたします。

お礼日時:2013/11/16 10:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報