0

大きな(通常の)ボタンを備えたツールバーのコンテナパネルで動的に構築されたリモートデスクトップアプリケーション内にwinformがあります。アプリケーションは C# と .NET 4.0 で作成されています。ウィンドウを最大化しない場合にのみ、アプリケーションが正常に表示されます (つまり、復元されたビューは問題ありません)。

これで、RDP ログイン後 (ほとんどのクライアント コンピューター内)、アプリケーションは問題なく表示されます (最大化して復元した場合でも)。低解像度のクライアント コンピュータ (800x600) では、ツールバーのボタンが正しい位置に表示されません (1024x768 クライアントなど)。

ダブルバッファリングを使用しましたが、役に立ちませんでした...問題は、画面の解像度に依存する場合とそうでない場合があります(メモリの問題などである可能性があります)。ローカライズ レイアウトの問題ではありません。

次の画像は、Fine 状態と Bad 状態を示しています: http://imgur.com/gO4UJ,v7O9K

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

さて、誰かがこの種のケースに遭遇した場合、これが問題を引き起こしたものです:

フォームには、空の再描画オーバーライドがありました。フォームを作成したプログラマーは、空のメソッドで再描画をオーバーライドしていました(理由はわかりませんが、チームにビジネスロジックを尋ねると思います)。

開発環境でどのように再現しましたか?Albin Sunnanboのメモに続いて、初期化中に最小化されたバージョンでRDPアプリケーションを実行しましたが、このユースケースでも高解像度クライアントで発生することに気付きました...したがって、ウィンドウのサイズ変更の実行中に再描画が発生することがわかりました-これにより、方法について疑わしい...

==>ちなみに、これが継承が非常に悪い理由であり、WPFに進む方が良いと思います。この問題が発生した理由を理解するのに3日かかりました。

于 2012-11-12T14:38:32.727 に答える