ウィンドウのサイズを変更するように、データグリッドビューのサイズを変更する機能をユーザーに提供したいと思います。つまり、マウスがウィンドウの端に移動すると、両側の矢印に変わり、ウィンドウのサイズを変更できます。winforms でこれを行うことは可能ですか?
2 に答える
このようなデザインはほとんどの場合拒否されるべきであるというTergiverに完全に同意しますが、フォームにいくつかの画像を表示する必要があり、ユーザーが何らかの理由で画像ボックスのサイズを変更したいと思ったときに、似たようなものを作成したことを覚えています。したがって、絶対に必要または学術的な場合は、次のようなことを試すことができます。
パネルにグリッドを追加するパネルに画像ボックスを追加し、グリッドを塗りつぶしとしてドッキングして、すべてのパネルスペースを占有し、画像ボックスがDataGridViewの上に浮くようにします。場合によっては、画像ボックスのzインデックスを変更する必要があります。グリッドの下に移動します。ピクチャーボックスのアンカープロパティを上、左から下に変更します。グリッドの右下隅に完全に右揃えにし、グリッド内のセルを覆い隠さないように、ピクチャーボックスをできるだけ小さくします。全体をドラッグするために使用される画像ボックスにグリッパー画像を追加し、画像ボックスのカーソルをSizeNWSEに設定します。ピクチャーボックスの背景色とグリッパー画像をうまくブレンドして、グリッドの一部のように見せます。次に、ピクチャーボックスのマウス移動イベントを次のように処理します。
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.panel1.Height = pictureBox1.Top + e.Y;
this.panel1.Width = pictureBox1.Left + e.X;
}
}
Panel1はグリッドをドッキングしたパネルで、picturebox1はグリッド上の画像ボックスです。
可能ですが、これを行う意味はありません。むしろ、ユーザーがフォーム全体のサイズを変更でき、DGV がそれに追従するように、DGV を固定/ドッキングする必要があります。
ここでは、WinForms でコントロールをレイアウトする方法に関する情報を見つけることができます。http://msdn.microsoft.com/en-us/library/ms951306.aspx