|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.12.2015, 15:59 | #1 |
Пользователь
Регистрация: 11.08.2012
Сообщений: 10
|
Масштабирование Форм в WinForm
Доброго вечера, Друзья!
Вот уже 2 месяца ломаю голову над одной проблемой. Пишу программу, состоящая из нескольких Форм. Размер форм (по умолчанию) поставил 1378:780. На моем ноуте все отображается Нормально (разрешение 1366x768), все красиво, все элементы (кнопки, текстбоксы, гриды и.т.д) на месте. Теперь, запустил программу на компьютере друга и тут начался ХАОС! Элементы пропадают, часть из них выходит на экран, некоторые вообще не видны! Не пойму, в чем дело! В инете подсказали, что нужно юзать TablelayotPanel. А я не нашел ни одного нормального ресурса по его использованию! Подскажите, пожалуйста, как мне решить эту проблему? Буду рад любой помощи, может, ресурсы подскажите или еще, что-то!? СПАСИБО!!! |
21.12.2015, 16:09 | #2 | |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Цитата:
|
|
21.12.2015, 16:28 | #3 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Видимо у друга "маленький" экран с большим разрешением ("2k", "4k", ретина у аппл или просто 15" ноутбук с 1920x1080) и поэтому стоит выше DPI.
Ну то есть вот это, рядом с настройками разрешения Не знаю какие нюансы в WinForm, но в целом надо например не задавать жестко размеры элементов в пикселях и координаты их расположения, а использовать Anchor/Dock, TableLayotPanel и т.п. чтоб элементы сами пропорционально растягивались. Цитата:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.12.2015 в 16:36. |
|
21.12.2015, 16:42 | #4 |
Пользователь
Регистрация: 11.08.2012
Сообщений: 10
|
Друзья, спасибо большое за ваши "остроумные" ответы! То, что вы посоветовали, я давно перепробовал, не помогает! Если ли бы проблема была в этом, я бы не создал эту тему!
|
21.12.2015, 16:49 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Что именно перепробовали? Причем тут остроумие? Нормальные ответы, нестандартное DPI самая частая причина проблем с масштабированием, и решается оно так, как описано.
Если дело не в нем, то это странно, покажите программу.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
21.12.2015, 16:54 | #6 |
Пользователь
Регистрация: 11.08.2012
Сообщений: 10
|
Я вот думаю, может у форм, размер по умолчанию изменить! Поменьше сделать?
|
21.12.2015, 16:55 | #7 |
Пользователь
Регистрация: 11.08.2012
Сообщений: 10
|
А вообще, не могли бы вы подсказать какой нибудь внятный способ по использованию Anchor/Dock, TableLayotPanel, Пожалуйста!
|
21.12.2015, 17:44 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Дык вы ж "давно перепробовали".
Что именно подсказать? Надо просто продумать как расположить элементы в ячейках/панелях и задать размер столбцов/строк в TableLayoutPanel (свойствa Rows или Columns), и привязку к нужным сторонам (Dock или Anchor) у элементов для растягивания. Например, если нужен текстбокс на всю ширину формы (или обычной Panel на форме) и справа кнопка, то можно создать TableLayoutPanel с 2 столбцами, у правого столбца например AutoSize, у левого 100% (все оставшееся место), в левый кинуть текстбокс и выставить либо Dock Fill, либо Anchor Top-Left-Right (чтоб вправо увеличился, а не был привязан только к левому верхнему углу как по умолчанию), в правый кнопку. Саму TableLayoutPanel естественно тоже привязать куда-нибудь, например Dock Fill или Top. Ну в данном случае это и без TableLayoutPanel будет работать если у кнопки выставить Anchor Top-Right (чтоб в правом верхнем углу была), но если больше элементов/строк, то уже так сложнее и проще с таблицей. http://www.codeproject.com/Tips/8424...-Forms-using-a Но вообще я посмотрел, ВинФормс со стандартными настройками вроде в большинстве случаев и так не ломает масштабирование при нестандартных DPI, так что покажите программу. Вряд ли у друга разрешение экрана меньше 1366x768, это что-то совсем древнее должно быть. Я только не понял зачем вы поставили 1378х780 при 1366x768, оно ж и у вас не должно помещаться.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 21.12.2015 в 17:50. |
22.12.2015, 11:26 | #9 |
Пользователь
Регистрация: 11.08.2012
Сообщений: 10
|
Огромное Вам спасибо, за помощь! Я попробую сделать, то, что вы подсказали!
Еще один момент хотел уточнить. Когда я создаю новую форму, я беру и растягиваю ее полностью, до предела, насколько это позволяет Visula Studio, а потом, выставляю в свойствах MaxSize это ширину и высоту! Правильно ли я делаю? Вообще, какой, по умолчанию, размер должен быть у Форм? Спасибо! |
22.12.2015, 12:11 | #10 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
MaxSize и MinSize обычно можно не выставлять если все элементы сделаны растягиваемыми.
Цитата:
Так каким образом у вас на 1366х768 помешается форма 1378х780? Зачем такой размер выставлять? По идее ж часть формы не будет видна (и даже если высота была бы 768, то часть формы была бы скрыта под панелью задач).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
си# winform | Мадлен | Помощь студентам | 2 | 14.12.2015 06:06 |
классы в си #( winform) | Мадлен | Помощь студентам | 2 | 05.05.2015 16:54 |
C# winForm | LeNZZZ08 | C# (си шарп) | 0 | 06.11.2014 10:15 |
MySQL+ WinForm C# | Rino256 | SQL, базы данных | 3 | 24.05.2014 16:21 |
подключение БД к winform c++ | Nitrino | Visual C++ | 0 | 16.04.2011 02:10 |