Resize EndWinform
だけでウィンドウのサイズを変更する方法はありますか?
これは、マウスがクリックされている限り、線が表示され、マウス (サイズ変更終了) を離れたときにのみウィンドウのサイズが画面上で変更されることを意味します。
DrawReversibleFrameを使用する必要があります。デフォルトのサイズ変更を無効にする必要があります (FormBorderStyle = FixedSingle)。
基本的なロジックは -
MouseDown
- トラッキングを開始します
MouseMove
- リバーシブル フレームを描画します - リバーシブル フレームの描画を
MouseUp
停止します。フォームのサイズを変更します。
幸いなことに、この MSDNの投稿には、このための作業コードがありました。私はあなたのために作った実用的なサンプルを持っています。 http://www.mediafire.com/download/427g2h2ajm5z62m/ResizeFrame.zip
これを微調整して、ユーザーが「MouseDown」を境界線に近づけたときにのみフォームのサイズ変更が行われるようにする必要があります。
含まれているコントロールのサイズを変更するだけでよい場合 (およびフォーム自体もすぐに)、フォームのResizeEndイベントを使用します。
(通常、フォームのサイズ変更自体を遅らせる理由はなく、含まれているコントロールを遅らせる理由はありません。サイズ変更は「高価」である可能性があるためです。)
注: 「ResizeEnd イベントは、ユーザーがフォームを移動した後にも生成されます」。