Ошибка при отображении формы при обновлении версии .NET и редактировании формы. - PullRequest
0 голосов
/ 01 марта 2012

Прежде всего, я недавно обновил форму проекта .NET 3.5 до 4.0.У меня не было проблем.

Но теперь я внес некоторые изменения и следствием этого является то, что форма плохо отображается на всех компьютерах, на которых не установлена ​​Visual Studio 2010. У них есть .NET 4.0, в противном случае я не смог бы запустить эту программу.

Мне нужно добавить только одну кнопку, и дизайнер изменяет две другие вещи:

 <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

переходит в (в файле .resx)

<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

И такие пары, как:

    ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit();
    ...
    ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit();

появляются в .Designer.cs InitializeComponent ()

Если я отменить это изменение в форме кода, отображается ОК на всех компьютерах, если я оставляю их, форма пропускает много дочерних элементов управленияи кажется, что большинство из них выскользнуло за пределы экрана, но только на компьютерах без VS2010.Как это исправить и как это связано с установкой VS2010 на компьютер?

1 Ответ

2 голосов
/ 04 марта 2012

Это звучит как проблема DPI, когда DPI вашего разработчика. ПК (например, 120 точек на дюйм) отличается от DPI на других компьютерах (например, 96 точек на дюйм).

Если вы не собираетесь поддерживать различные DPI в своем приложении, просто убедитесь, что вы разрабатываете свой код на ПК, для которого установлено целевое разрешение DPI (обычно 96 dpi).

Если вы хотите поддерживать различные разрешения DPI, Form.AutoScaleMode будет хорошим началом. StackOverflow также полон ресурсов о проблемах и решениях DPI.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...