2011-12-15 3 views
3

Внутри приложения WinForms лучший способ обработки элементов управления повторной калибровкой в ​​соответствии с разрешением экрана и максимизацией и повторной калибровкой окна. У меня есть 3 столбца, которые установлены так. LABEL TEXTBOX в каждом столбце. Вы можете считать это шестью столбцами. Я попытался привязать вправо, но проблема в том, что текстовое поле в столбце 1 перекрывает следующие 2 столбца. Я также попытался состыковать, но это не похоже на трюк. Есть ли простой способ сделать это?Как я могу изменить размер элементов управления на основе разрешения?

ответ

3

TL; DR: Вы не можете без логического кодирования с изменением размера. В качестве побочного примечания вы, вероятно, не должны пытаться это сделать.

В традиционных WinForms нет автоматических путей, насколько мне известно, не сворачивая собственное решение. Sean87suggested свойство AutoScaleMode, но пока оно автоматическое, оно не поддерживает автоматическое определение размера по разрешению. Он дает возможность масштабирования на основе параметров размера шрифта в Windows или настройке DPI. Ни одно из них напрямую не изменяется при простом изменении разрешения экрана, и, честно говоря, большинство типичных пользователей (и даже, возможно, опытных пользователей), вероятно, никогда не будут изменять настройки DPI или размера шрифта.

Помимо всего прочего, с точки зрения основных пользователей все большее разрешение экрана заключается в том, чтобы предоставить больше виртуального рабочего пространства для размещения окон приложения. Правда, большинство мониторов теперь основаны на ЖК-дисплеях и, следовательно, имеют native resolutions, которые делают меняя это в основном на прошлое CRT. Тем не менее, действие покупки нового, большего монитора позволило бы типичному пользователю увеличить это виртуальное пространство экрана, чтобы они могли видеть больше окон на экране одновременно. Приложение, которое всегда поддерживает тот же относительный размер, что и разрешение экрана, было бы довольно необычным, я думаю, и это противоречит ожиданиям большинства пользователей, в том числе даже наших продвинутых пользователей разработчиков.

Как правило, вы должны закодировать приложение для удобного изменения его содержимого в случае изменения размера окна, но в целом вы полагаетесь на пользователя для управления этим, поскольку это их машина и их предпочтение (подумайте об этом как о " мой дом, мои правила "). Именно поэтому большинство (все?) Приложений не меняют положение окна, за исключением случаев, когда пользователь напрямую манипулирует ими (перетаскивая рамку окна и т. Д.). Фактически, все это, вероятно, объясняет, почему Microsoft выбрала не, чтобы включить любое автоматическое правило калибровки, основанное на разрешении.

0

вы можете изменить AutoScaleMode формы, а также свойство автоматического размера каждого элемента управления. И вы можете использовать splitcontainer или панели для формирования столбцов.

1

Вы не определяете, что вы подразумеваете под «столбцом». Как правило, вы должны использовать TableLayoutPanel и внутри каждой «ячейки» установить привязки элементов управления.

Смежные вопросы