#コントロールの中央揃え表示ができない
(>_<)
#やりたいこと
フォームのサイズが変更された場合に、その拡大・縮小にあわせて、
コントロールを中央に表示する。
#問題
中央表示にならない....。
ソースは以下です。
ウォッチを見て各プロパティ調べて計算しても、
左右の横の間隔などは、一致しているはずなのですが、
現実一致していません...。
イベント内での処理などまずい部分があるのでしょうか?
何か方法などあれば、お願いします...。
#ソース
C#
1 2 /// <summary> 3 /// コンストラクタ 4 /// </summary> 5 public Form1() 6 { 7 // コンポーネント初期化 8 InitializeComponent(); 9 10 // 親フォーム登録 11 panelWarapper1.Initialize(this); 12 } 13 14 /// <summary> 15 /// 中央表示させるためのパネル(コンテナー) 16 /// </summary> 17 public class PanelWarapper : Panel 18 { 19 20 /// <summary> 21 /// 初期化処理 22 /// </summary> 23 /// <param name="parent"></param> 24 public void Initialize(Form parent) 25 { 26 // リサイズ終了時イベント登録 27 parent.ResizeEnd += (s, e) => 28 { 29 // 親フォーム 30 var p = s as Form; 31 32 // 余白取得 33 var marginX = (p.Width - this.Width) / 2; 34 var marginY = (p.Height - this.Height) / 2; 35 36 // 位置設定 37 this.Location = new Point(marginX, marginY); 38 }; 39 } 40 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/17 12:01