質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

2回答

12886閲覧

c# コントロールの中央揃え表示ができない

Ineda

総合スコア45

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2017/09/16 15:02

#コントロールの中央揃え表示ができない
(>_<)

#やりたいこと
フォームのサイズが変更された場合に、その拡大・縮小にあわせて、
コントロールを中央に表示する。

#問題
中央表示にならない....。
ソースは以下です。

ウォッチを見て各プロパティ調べて計算しても、
左右の横の間隔などは、一致しているはずなのですが、
現実一致していません...。

イベント内での処理などまずい部分があるのでしょうか?
何か方法などあれば、お願いします...。

中央のグレー部分がセンタリング表示したパネル

#ソース

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 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

FormWidth プロパティはフォームの幅を表しますが、これにはコントロールを配置できない余白が含まれています。Form.ClientSize.Width を使ってください。

投稿2017/09/17 09:54

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ineda

2017/09/17 12:01

早速試してみました。 上手くいきました。 ありがとうございました!!
guest

0

こんにちは。

対象コントロールのAnchorプロパティーを確認してください。
デフォルトでは左上を基準に固定されていたと思います。


Locationを自分で指定されていたのですね…検討違いな指摘だったかもです。

投稿2017/09/16 22:59

編集2017/09/16 23:01
Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問