Почему form.clientsize перемещает мои кнопки в windows 10?
У меня есть довольно простое служебное приложение, первоначально написанное в VS 2010. Когда я обновил свою машину разработки до Windows 10, приложение работало без изменений, но две кнопки в одном диалоговом окне переместились на 23 пикселя вверх, где они частично скрыты меткой. Раздражает, но какое-то время терпимо.
Сегодня я решил, что пришло время исправить эту ошибку, поэтому я перенес проект на VS 2015 в Windows 10 (с тем же самым .Чистая версия указана). Когда я открываю конструктор форм для этого диалога, конечно же, кнопки имеют высоту 23 пикселя. Поэтому я переместил их обратно в нижнее правое якорное положение, в котором они находятся, и сохранил форму. Затем я сравнил текущую и предыдущие версии файлов формы, и единственная строка, которая изменилась, находится в файле designer.cs:
this.ClientSize = new System.Drawing.Size(284,93);В VS 2010 под Windows 7 93 было 94. Если я изменю 93 обратно на 94, кнопки вернутся в свои неправильные места, и VS изменит 94 обратно на 93. Документация MSDN по ClientSize звучит так, как будто ее следует рассматривать только для чтения, и не упоминает о том, какой эффект может иметь ее изменение.
Поиграв с файлом designer.cs (только для усмешек), я обнаружил, что если я исправлю местоположения в этом файле, VS изменит их обратно в неправильные местоположения. Единственный способ поместить кнопки туда, где они должны быть, - это переместить их в графический дизайнер, а затем поместить их в те же места, в которые я не мог их отредактировать. Иди разберись.
Очевидно, что нужно делать для моей версии Windows 10, но мой аналитический мозг не любит не знать, почему это происходит. Довольно ясно, что это разница между Windows 7 и 10, но...
Почему только этот диалог?
Почему только эти две пуговицы?
И вообще, какое отношение к этому имеет размер клиента?
Что я уже пробовал:
Поискал MSDN в разделе Form.ClientSize.
Ralf Meier
Несколько вопросов :
- какой .Net-фреймворк вы используете ?
- в вашей форме : какие настройки у вас есть в свойстве "AutoScaleMode"?
- где находятся эти 2 элемента управления ?
John Whitmire
Смотрите мой ответ Мацею лосу.