1

ユーザーが Windows フォームを全画面表示に最大化できないようにしたいので、最大化ボタンを無効にしました。ただし、ユーザーがフォームを「復元」できるようにしたいと考えています。復元ボタンをクリックすると、元のフォームに戻る最大化ボタンが表示される、別の小さく縮小されたフォームが表示されます。

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

ありがとう。

編集: わかりません。ユーザーがフォームのサイズを変更するのを妨げているわけではありません。復元ボタンをクリックすると、フォームが非表示になり、コントロールが少ない新しいフォームが開きます。小さいフォームで最大化をクリックすると、元のフォームに戻ります。

4

5 に答える 5

2

私は職場でこれと同様の問題を調べましたが、私が見つけることができた唯一の解決策は、文書化されていないウィンドウ スタイルを設定することでした。

したがって、あなたの問題に対する最善の解決策は、現在の最小化/最大化/復元ボタンを非表示にし、所有者描画または他のコマンドを使用して独自のボタンを追加することです。

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

于 2008-12-17T15:52:59.047 に答える
1

FWIW、正しい答えは、フォームのサイズを適切に変更し、任意のウィンドウサイズに適応させ、解像度とフォントサイズでディ​​スプレイに正しく表示されるようにユーザーを制限ないことです. サイズ変更できないウィンドウは、アプリケーションで遭遇する最も厄介なものの 1 つです (Windows 自体には、ウィンドウがいっぱいあります)。

于 2008-12-16T22:16:49.240 に答える
1

MaximumSize と MinimumSize を設定し、最大化ボタンを有効にしてこの種の効果を得ることができます。

于 2008-12-16T21:15:25.260 に答える
0

私は最近似たような状況にあり、UI デザインの観点から、Windows Media Player で良い例を見つけました。最小化、最大化、復元ボタンはそのままにして、右下に「コンパクトモードに切り替える」ための別のボタンがあります。ミニ/コンパクトモードでは、同じボタンが「フルモードに切り替え」に切り替わります。もう 1 つの代替例は Skype です。これには、標準の最小化ボタンのすぐ左に、コンパクト モードと標準モードを切り替える追加のシステム アイコン ボタンがあります。

(私に特権があれば、これをコメントとして入れて、Daeminの受け入れられた回答に追加することを好みましたが、StackOverflowにはまだ比較的新しいです)

于 2011-07-16T16:35:28.693 に答える
0

フォームを「復元」するとResize、親フォームがなくなったかどうかを確認できるイベントが発生しますFormWindowState.Maximized。そうでない場合は、子フォームを開いて親を非表示にすることができます。

これを逆にするには、子フォームを非表示 (または破棄) して「最大化」し、非表示を解除して親フォームを に設定しFormWindowState.Maximizedます。

このメソッドで確認できる唯一の問題はResize、フォームが Maximumized 状態に達する前にイベントが数回発生する可能性があることです。フォームが現在の状態から目的の状態になるまでこれらを無視するには、フラグが必要になる場合があります。これにより、無限ループが発生する可能性があります。

于 2014-06-23T18:27:21.707 に答える