2016-08-30 10 views
-1

アプリケーションでフォームを開発しているベンダーに何か助けが必要な場合は、ソースがありません。私たちは大きなWinformsのバグを見つけました。もし1024x768のRDPセッションで開かれた場合、〜1000pxのフォームの下位250pxには到達できません。画面よりも大きいフォームの場合はスクロールバー

私はナンセンスであることが分かっている解決策はないと言っているのは難しいですが、私は自分自身をテストして別の方法で表示するためのコンセプトを構築するために現在Visual Studio環境を構築していません。

他のStackOverflowの質問とMSDNのドキュメントページからわかるように、フォームが最大表示可能な高さに自動的にサイズ変更されるように、次のような問題を解決する必要があります。フォームの。次は私の目標を達成するでしょうか?

public MyTallForm() 
{ 
    InitializeComponent(); 
    this.AutoScroll = true 
    this.AutoSize = true 
} 
+0

この質問を控えめにした人は、どうして私が問題を解決できるのかを詳しく説明してください。または、そうする可能性が高いので、そうしないでください。 – bdx

+2

私はdownvoteをしなかったが、なぜ誰かが理解することができる。フォームとコントロールの実装について実際に情報が与えられていない場合、これがうまくいくかどうか、あるいはどのような組み合わせや変更を加えなければならないかについてはっきりと言うことはできません。 –

答えて

3

AutoSizeは、必要に応じて、フォームを縮小&を成長させることによって、フォーム内のコントロールで変更に応答します。

AutoScrollは、スクロールバーを表示/非表示にすることで、フォーム内のコントロールの変更に応答します。

フォームが常に十分大きいので、AutoSizeがアクティブな場合、AutoScrollはアクティブ化されません。問題がディスプレイ解像度が小さすぎる場合は、自動スクロールが必要です。

フォームは、RDPセッションの間に開いたままにする場合は、解像度の変更を認識するDisplaySettingsChangedに加入する必要があるかもしれませんし、どちらかだけでMaximizeは、(それが既に最大化だと確信していない場合は、最小化にトグルし、背面には、おそらく最大化?)、または詳細なサイズが必要な場合はGetWorkingAreaを使用してください。フォームのプロパティで

+0

明確にするために、フォームの高さが画面またはRDPセッションの利用可能な解像度よりも大きくならないように、初期化時に 'this.AutoScroll = true'を設定するように指示するだけです。フォームはセッション間で開いたままにしておかないので、少なくとも単純にフォームを単純化します。 – bdx

+1

@bdxコントロールがマイクロソフトのコントロールと同様に動作する場合、初期化時に 'WindowState = FormWindowState.Maximized'と' AutoScroll = true'が動作するはずです –

2

設定AutoScroll = TrueAutoScaleMode to Dpi

See attached imageはそれがお役に立てば幸いです。

関連する問題