質問

私は、最大化ボタンを無効にしているので、全画面表示にWindowsフォームを最大化からユーザーを防ぎたいです。しかし、私は、フォームを「復元」ユーザーを持つことができるようにしたいです。彼らは復元]ボタンをクリックすると、私はそれが彼らに元の形に使用を返します最大化ボタンを表示します。他の、小さく、縮小さ、形を示したいと思います。

これを行う方法はありますか?

感謝します。

編集: 私は、フォームのサイズを変更するからユーザーを防止していないよ、理解していません。いただきましたが起こって復元ボタンをクリックしたとき、それはフォームを非表示にし、その上に少ないコントロールで新しいものを開きますです。彼らは小型のフォームに最大化]をクリックすると、それは元の形に戻ります。

役に立ちましたか?

解決

私は仕事でこれに同様の問題を見て、唯一の解決策は、私は私が行うために傾斜ませんでし関与設定文書化されていないウィンドウのスタイルを、見つけることができます。

あなたの問題を

そのための最善の解決策私は現在の最小化/最大化/復元ボタンを隠し、いくつかのOwnerDrawするか、他のコマンドを使用して、独自のを追加すると思うだろう。

私は、彼らがすべての他人のためにそうであるように復元/最小化/最大化ボタンは、アプリケーションのためにまったく同じことをしたいと思うユーザインタラクションの観点からこれを見て。私はこの機能を実行するあなたのインターフェイス上のどこか別のタイトルバーの上に別のボタンのいずれかを作成したり、推薦するので、なぜ、あなたのユーザーの混乱を作成し、その機能をオーバーライドます。

他のヒント

FWIW、右の答えは、フォームが正しくサイズを変更することです任意のウィンドウサイズに適応し、の自分のの時に右のの自分ののディスプレイ上で見えるものにユーザーを制限しません解像度との自分ののフォントサイズ。非サイズ変更ウィンドウが、私は、アプリケーションで発生した最も厄介なものの一つです(Windows自体がそれらの完全である)。

あなたはのMaximumSizeとのminimumSizeを設定し、効果のこの種を取得するために最大化ボタンを有効にすることができます。

私は最近、似たような状況があったが、UI設計の観点から、Windows Media Playerの良い例を発見しました。それは彼らがそうであるように、最小化、最大化、および復元ボタンを残し、そして「コンパクトモードに切り替え」の右下にある別のボタンがあります。ミニ/コンパクトモードで、同じボタンは、「フルモードに切り替える」に切り替わります。別の代替例は、単にコンパクトと標準モードの間で切り替え標準最小ボタンの左追加のシステムアイコンボタンを有するスカイプ、である。

(私は特権を持っていた場合、私はStackOverflowのにまだ、Daeminの受け入れ答えに比較的新しい追加するためのコメントとしてこれを置くことが好ましいただろう)

「復元」形式は、親フォームがもはやResizeされていないかどうかをチェックすることができますFormWindowState.Maximizedイベントを発生させます。ない場合は、子フォームを開き、親を非表示にすることができます。

これを逆にするには、あなたはそれは、非非表示に隠れて(または廃棄)することにより、子フォーム「を最大化」とFormWindowState.Maximizedに親フォームを設定することができます。

私はこの方法で見ることができる唯一の問題は、フォームがMaximumized状態に到達する前にResizeイベントはおそらく数回発火するということです。フラグは、フォームが無限ループを引き起こす可能性が所望の状態、現在の状態からなるまでこれらを無視するために必要とされてもよい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top