Проблемы с перемещением элементов управления в TableLayoutPanel - PullRequest
1 голос
/ 25 марта 2012

Для winForm, которую я создаю, я работаю с TableLayoutPanel , который имеет произвольное количество текстовых полей и две кнопки для добавления или удаления блоков, + и -.Кнопки + и - появляются прямо под текстовым полем, на которое пользователь выделил фокус, следующим образом:

  • (текстовое поле)
  • (текстовое поле с фокусом)
  • (кнопка минус)
  • (кнопка плюс)
  • (текстовое поле)
  • (текстовое поле)
  • (текстовое поле)

Еслипользователь нажимает другое поле, кнопки + и - должны перемещаться соответствующим образом во время выполнения.Некоторое время я пытался переместить текстовые поля с помощью команд .GetControlFromPosition и .GetPositionFromControl, но, похоже, это не сработало, поскольку поля либо не перемещаются, либо перемещаются в другие места, чем предполагалось.Как лучше всего решить эту проблему?

1 Ответ

0 голосов
/ 26 марта 2012

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


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

(    text box    ) ( ) ( )
(focused text box) (+) (-)
(    text box    ) ( ) ( )
(    text box    ) ( ) ( )
(    text box    ) ( ) ( )
...