Контроль привязки в Visual Studio 2010 - PullRequest
4 голосов
/ 27 апреля 2011

Я как бы просто придираюсь, но, может быть, есть простое решение, которое сэкономит мне время.

Когда я рисую свой графический интерфейс Winforms в конструкторе, элементы управления привязываются к определенным точкам. Я могу выровнять базовую линию текста одного элемента управления с другой, я могу выровнять левую и / или верхнюю часть одного элемента управления другим и т. Д. Это все замечательно.

Что также здорово, так это то, что элементы управления привязываются к другим элементам управления, расположенным на их полях. Это означает, что если я создаю вертикальный массив TextBox, то я могу иметь их равноудаленные в моем GUI - это выглядит менее грязно.

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

Я не говорю, что этот процесс особенно сложен или занимает много времени. Просто если бы это случилось, весь процесс был бы бесконечно проще.

Есть ли в VS2010 встроенная опция или, возможно, расширение? Или, может, я просто делаю это неправильно?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Всякий раз, когда необходимо расположить элемент управления так, чтобы он «привязывался» к краю формы, я обычно сначала перемещаю (или изменяю размер) элементы управления до нужного размера, а затем изменяю свойство «Привязка» элементов управления этих элементов управления, которые должны быть привязаны к соответствующему краю формы (даже если самой форме не разрешается изменять размер).

Таким образом, всякий раз, когда я изменяю размер формы, положение элементов управления относительно этой формы остается неизменным, просто изменяя размеры или перемещая элемент управления в соответствии с требованиями (в зависимости от выбранного свойства Anchor).

Я полностью согласен с тем, что возможность "привязать" форму к элементам управления при изменении размера формы была бы чрезвычайно полезной, но обычно ее можно обойти, используя свойство anchor таким образом - в тех случаях, когда оно не работает (например, когда форма полностью состоит из столбца текстовых полей с фиксированной высотой), я боюсь, что вам нужно прибегнуть к вычислениям, но я обнаружил, что большинство диалоговых окон можно изменять.

1 голос
/ 27 апреля 2011

Привязка линий в конструкторе отлично работает при перемещении или изменении размера любого из встроенных элементов управления. Единственный раз, когда они не работают, это когда вы изменяете размер формы .

Я согласен, что здесь было бы очень удобно иметь линии привязки. Хотел бы я знать, как это сделать. Но, к сожалению, я не верю, что он есть.

Временные решения: либо математически рассчитать правильный размер, либо угадать изменение размера формы, а затем проверить свою работу, перетащив один из элементов управления (и используя появляющиеся линии привязки). Я делаю то же самое «жонглирование», которое вы описываете, к сожалению, регулярно.

...