1つのWindowsフォームファイルがあり、Visual Studioで開くたびに、デザイナーファイル内のコントロールのサイズが大きくなります。フォームを保存し、エディターで閉じてからもう一度開くと、コントロールはすべて以前より少し大きくなります。コントロールのサイズプロパティがすべてデザイナーファイル内で増加していることがわかります。
誰かがこの動作を修正する方法を私に説明できますか?
1つのWindowsフォームファイルがあり、Visual Studioで開くたびに、デザイナーファイル内のコントロールのサイズが大きくなります。フォームを保存し、エディターで閉じてからもう一度開くと、コントロールはすべて以前より少し大きくなります。コントロールのサイズプロパティがすべてデザイナーファイル内で増加していることがわかります。
誰かがこの動作を修正する方法を私に説明できますか?
通常の1280x800のラップトップと比較してHD解像度のラップトップを搭載したWindows8で実行すると、VisualStudioで問題が発生しました。
HDラップトップの新規インストールでのWindowsのデフォルトは、Windowsプログラムのフォントサイズを25%増やすことでした。
[画面の解像度]->[テキストまたはその他のアイテムを拡大または縮小]->[すべてのディスプレイに1つのスケーリングレベルを選択させてください]を選択して、設定を確認します。私の場合は125%です。
Visual Studioは、上記の設定に基づいてフォームを設定したり、AutoScaleMode設定を制御したりしているようです。
フォームデザイナの場合:低解像度のラップトップの場合this.AutoScaleDimensions = new System.Drawing.SizeF(6F、13F);
こんにちはresthis.AutoScaleDimensions= new System.Drawing.SizeF(7F、16F);
私のコメントを詳しく説明すると、デザイナーがフォームをロード/保存すると、フォームのパブリックプロパティとフォームのコントロールのゲッター/セッターが呼び出されます。
これは、フォームのプロパティをオーバーライドし、そのプロパティにアクセス/設定するとコントロールのサイズが変更されるという副作用がある場合、そのサイズ調整がデザイナーに反映されることを意味します。次に、フォームを保存すると、その新しいサイズがデザイナーが生成したコードに保持されます。フォームを再度開くたびに、この調整が行われます。
これは、デザイナーが生成したコード内で設定されているプロパティのイベントハンドラーにも適用されます。
コントロールをロックするだけで、誤って移動したりサイズを変更したりできなくなります。
フォームデザイナを開いて右クリックし、コンテキストメニューから[コントロールのロック]を選択します。
Visual Studioがそれらを自動的にサイズ変更する理由については、推測するしかありません。