しばらくの間、私のアプリケーションを使用している何人かの人々は、WinFormがどのように描画されているかについての奇妙な振る舞いについて不平を言っています。フォームには固定されたものsplitcontainer
があります。panel1
私は今日まで彼らの問題を再現することができませんでした。
Win7エンタープライズの32ビットバージョンを実行しているラップトップにアプリをインストールしました。(アプリは、64ビットバージョンのWin7 entを実行しているコンピューターで問題なくビルドされ、実行されています。)
何が起こっているかを確認するために、プロジェクトファイルをラップトップにコピーし、Visual Studio 2012で開いて、何が起こっているかを確認しました。しかし、どうしたらいいのかわからないのでびっくりしました。
開発者について マシン(私の64ビットwin7 ent)、フォーム(および分割コンテナー)サイズの仕様は次のとおりです。
- フォームの高さ:383
- フォーム幅:707
- 分割コンテナの高さ:321
- 分割コンテナ幅:691
- スプリッター距離:380
プロジェクトをラップトップにロードすると、仕様が次のように変更されます。
- フォームの高さ:419
- フォーム幅:859
- 分割コンテナの高さ:397
- 分割コンテナ幅:921
- スプリッター距離:380
これで、プログラムがどのように表示されるのかを見ることができないという人たちの不満をようやく理解することができました。
32ビットマシンでは、スプリッターがいくつかのボタンを部分的に覆っています。これにより、テキストが表示されないため、プログラムが明らかに使いにくくなります。
これが起こる理由はありますか?
つまり、元のコードが特定のサイズ値に設定されている場合、プログラムがどこで実行されていても、それはどうあるべきかということではありませんか?(もちろん、ユーザーがサイズを変更しない場合)。
そして最も重要なのは、2つの別々のバージョンを作成せずにこれを解決できる方法はありますか?