Элементы Windows Forms - Обмен мест - PullRequest
0 голосов
/ 03 апреля 2012

Можно ли как-нибудь взять два элемента WinForms одинакового размера / типа и просто поменять их местами?

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

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

Есть ли способ сделать это?

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

1 Ответ

1 голос
/ 03 апреля 2012

Если они расположены рядом, как вы предлагаете, вам просто нужно поменять их свойство Left:

int tmp = control1.Left;
control1.Left = control2.Left;
control2.Left = tmp;

Вы также можете поменять их верхние свойства, если они не одинаковы (то есть они на самом деле не соседствуют).

Конечно, это работает, только если они находятся в одном родительском контроле. Если это не так, вам необходимо удалить их от родителей и добавить их обратно к другому родителю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...