web-dev-qa-db-ja.com

フォームのサイズ変更時にdatagridviewコントロールのサイズを変更する方法

子コントロールのサイズを変更するときにフォームのサイズを変更する方法について多くの質問を見つけましたが、もっと簡単なことをしようとしています

フォームの幅に合わせて、datagridviewの幅を自動的にサイズ変更したいと思います。フォームにdatagridviewを配置しただけで、フォームのサイズが変更されてもグリッドは同じサイズのままになります。これは、コントロールをフォームの境界に「接続」する小さな一定の距離のスナップを使用する場合でも発生します。

ある種のform.resizeイベントを処理する必要がありますか、それともVSで設定できるプロパティはありますか?

36
lowerkey

コントロールのアンカーを使用します。 AnchorのプロパティGridViewTop, Left, Rightに設定すると、コンテナに合わせてサイズが変更されます。 GridViewがコンテナ(ex Panelなど)内に配置されている場合、Panelも固定する必要があります。

46
Samich

DataGridViewのプロパティを設定します。

Anchor: Top,Left
AutoSizeColumn: Fill
Dock: Fill
21
wreckseal

親のすべての側(上、下、左、右)にフックするようにコントロールのアンカープロパティを設定します。

10
hmqcnoesy

ここには2つのオプションがあります。

  • オプション1、アンカー
  • オプション2、Dock

両方のプロパティを探し、どちらがニーズに合っているかを見つけます。

http://msdn.Microsoft.com/en-us/library/system.windows.forms.control.anchor.aspx

そして

http://msdn.Microsoft.com/en-us/library/system.windows.forms.control.dock.aspx

5

「アンカー」プロパティは、フォーム、パネル、グループボックスなどのあらゆるコンテナに存在します。

たとえば、左側を1つ、または4つすべての側面を選択できます。

アンカーとは、サイズを変更しても、選択した辺とコンテナのエッジ間の距離が同じままであることを意味します。

たとえば、データグリッドビューdgv1は、Form1の中間にあります。 「アンカー」は、dgv1の左側と上側です。アプリが実行され、異なる画面解像度またはフォームサイズの変更からサイズ変更が行われると、dgv1の上部と左側がそれに応じて変更され、From1のエッジからの距離が維持されます。底面と右側はそうではありません。

4
OldProgrammer

完全なヘッダーテキストを表示する場合

これにより、ヘッダーに完全なヘッダーテキストが表示されるように列のサイズが自動的に変更されます。

dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

ドックモードの場合

パネルまたはフォームにドックモードを表示する場合。

dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
3
Muhammad Muneeb

フォームコンストラクターで、次のようなイベントハンドラーを作成できます。

this.SizeChanged(frm_sizeChanged);

次に、グリッドのサイズを適切に変更するイベントハンドラーを作成します。例:

private void frm_sizeChanged(object sender, EventArgs e)
{
     dataGrid.Size = new Size(100, 200);
}

これらの数字を好きなものに置き換えます。

3
brpyne

私にとって、アンカーは、4つの側面すべてに設定した場合にのみ機能します。

固定:上、下、左、右

アンカーを左のみに設定すると、フォームが左下にサイズ変更されたときにオブジェクト全体が移動します。 4つのサイズをすべて設定すると、親のサイズが変更されたときにオブジェクトのサイズが実際に変更されます。

1
FrenkyB

Dockプロパティで「Fill」を選択する必要があります。

1
Jule

データグリッドビューのプロパティでこれを行うことができるかどうか、あなたが尋ねていることを誤解していない限り。 Anchorプロパティを、ロックする側に設定する必要があります。

1
Taryn

layoutのdatagridviewの「Dock」プロパティを、上、左、下、右のいずれかのプロパティに設定します。 OK?

0
user2821937