2012-04-03 4 views
0

Можно ли каким-либо образом взять два элемента WinForms одного размера и типа и просто поменять местами?Элементы Windows Forms - Swap Spots

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

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

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

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

ответ

1

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

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

Вы также можете обменять свои главные свойства, если они не являются одинаковыми (т.е. они не являются фактически бок о бок).

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

+0

Отлично, что-то вроде этого было именно тем, что я искал! – slandau

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