web-dev-qa-db-ja.com

C#でウィンドウのサイズが変更されたときにオブジェクトを所定の位置に保持する方法

ウィンドウのサイズが変更されたときに、ウィンドウのオブジェクト(ボタン、ラベルなど)を中央に保つにはどうすればよいですか?

現在、Windowsフォームには3つのボタンがあります。ウィンドウを最大化すると、ボタンはウィンドウの左上に留まります。ウィンドウが最大化されていないときのように、中央に配置してほしい。

何か助けは?

13
PHP Developer

オブジェクトのアンカープロパティをnoneに設定する必要があります。

これはそれを真ん中に保ちます。

28
SirDuckduck

レイアウトを固定し、途中でこれを行うには:

  1. FormTableLayoutPanelを追加します。
  2. DockプロパティをFillに設定します。
  3. 3つの行と3つの列を作成します。
  4. 行と列を編集-最初と最後の列と行に50%を設定します。
  5. 中央の行と列の固定サイズを設定します。
  6. 2行2列目にPanelなどを配置します。常に真ん中です。
4
Grzegorz W

コントロールのAnchorプロパティを正しく設定します。デフォルトでは、コントロールはTop,Leftに固定されています。このプロパティをクリアすると(基本的には何にもアンカーされない)、ボタンは中央に配置されたままになります。

(4つの辺すべてに固定したいように見えるかもしれませんが、実際には、ボタンのサイズを変更してフォームを満たすようにします!)

2
Dan Puzey

Visual Studioのビジュアルデザイナを使用している場合(そうする理由がない場合)、フォーム内に配置する方法を管理するためのコントロールのプロパティは "アンカー"です。デフォルトでは、新しいコントロールを作成すると、コントロールは「左上」に設定されます。これは、コントロールがフォームの左上に固定された位置に留まることを意味します。それらを変更して、何にでも固定できます。

フォームのResizeメソッドをオーバーライドすることで、アンカーを無効にして位置を制御することもできます。

0
LightStriker