Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2015, 15:59   #1
adimmat
Пользователь
 
Регистрация: 11.08.2012
Сообщений: 10
По умолчанию Масштабирование Форм в WinForm

Доброго вечера, Друзья!
Вот уже 2 месяца ломаю голову над одной проблемой. Пишу программу, состоящая из нескольких Форм. Размер форм (по умолчанию) поставил 1378:780. На моем ноуте все отображается Нормально (разрешение 1366x768), все красиво, все элементы (кнопки, текстбоксы, гриды и.т.д) на месте.
Теперь, запустил программу на компьютере друга и тут начался ХАОС! Элементы пропадают, часть из них выходит на экран, некоторые вообще не видны!
Не пойму, в чем дело!
В инете подсказали, что нужно юзать TablelayotPanel. А я не нашел ни одного нормального ресурса по его использованию!
Подскажите, пожалуйста, как мне решить эту проблему?
Буду рад любой помощи, может, ресурсы подскажите или еще, что-то!?
СПАСИБО!!!
adimmat вне форума Ответить с цитированием
Старый 21.12.2015, 16:09   #2
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
А я не нашел ни одного нормального ресурса по его использованию!
http://msdn.com
come-on вне форума Ответить с цитированием
Старый 21.12.2015, 16:28   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Видимо у друга "маленький" экран с большим разрешением ("2k", "4k", ретина у аппл или просто 15" ноутбук с 1920x1080) и поэтому стоит выше DPI.
Ну то есть вот это, рядом с настройками разрешения


Не знаю какие нюансы в WinForm, но в целом надо например не задавать жестко размеры элементов в пикселях и координаты их расположения, а использовать Anchor/Dock, TableLayotPanel и т.п. чтоб элементы сами пропорционально растягивались.

Цитата:
Вот уже 2 месяца
Чем вы занимались эти месяцы? За 2 месяца можно было и без документации и интернета понять как им пользоваться.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 21.12.2015 в 16:36.
Alex11223 вне форума Ответить с цитированием
Старый 21.12.2015, 16:42   #4
adimmat
Пользователь
 
Регистрация: 11.08.2012
Сообщений: 10
По умолчанию

Друзья, спасибо большое за ваши "остроумные" ответы! То, что вы посоветовали, я давно перепробовал, не помогает! Если ли бы проблема была в этом, я бы не создал эту тему!
adimmat вне форума Ответить с цитированием
Старый 21.12.2015, 16:49   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что именно перепробовали? Причем тут остроумие? Нормальные ответы, нестандартное DPI самая частая причина проблем с масштабированием, и решается оно так, как описано.

Если дело не в нем, то это странно, покажите программу.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.12.2015, 16:54   #6
adimmat
Пользователь
 
Регистрация: 11.08.2012
Сообщений: 10
По умолчанию

Я вот думаю, может у форм, размер по умолчанию изменить! Поменьше сделать?
adimmat вне форума Ответить с цитированием
Старый 21.12.2015, 16:55   #7
adimmat
Пользователь
 
Регистрация: 11.08.2012
Сообщений: 10
По умолчанию

А вообще, не могли бы вы подсказать какой нибудь внятный способ по использованию Anchor/Dock, TableLayotPanel, Пожалуйста!
adimmat вне форума Ответить с цитированием
Старый 21.12.2015, 17:44   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 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.
Alex11223 вне форума Ответить с цитированием
Старый 22.12.2015, 11:26   #9
adimmat
Пользователь
 
Регистрация: 11.08.2012
Сообщений: 10
По умолчанию

Огромное Вам спасибо, за помощь! Я попробую сделать, то, что вы подсказали!
Еще один момент хотел уточнить. Когда я создаю новую форму, я беру и растягиваю ее полностью, до предела, насколько это позволяет Visula Studio, а потом, выставляю в свойствах MaxSize это ширину и высоту!
Правильно ли я делаю? Вообще, какой, по умолчанию, размер должен быть у Форм?
Спасибо!
adimmat вне форума Ответить с цитированием
Старый 22.12.2015, 12:11   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

MaxSize и MinSize обычно можно не выставлять если все элементы сделаны растягиваемыми.
Цитата:
Вообще, какой, по умолчанию, размер должен быть у Форм?
Ну наверно такой, который поместится на экране всех/большинства пользователей. Например, что-нибудь не сильно большое типа 900x600. Или при запуске можно проверять разрешение и изменять размер в соответствии с ним если надо.

Так каким образом у вас на 1366х768 помешается форма 1378х780? Зачем такой размер выставлять? По идее ж часть формы не будет видна (и даже если высота была бы 768, то часть формы была бы скрыта под панелью задач).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
си# 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