Определить ячейку таблицы. Элементы управления панели содержатся в - PullRequest
0 голосов
/ 18 мая 2018

Я работаю над проектом в VB.Net и использую панель макетов таблиц, позволяющую открывать несколько окон рядом друг с другом.

Проблема, с которой я сейчас сталкиваюсьточно определяет, в какой столбец компонента Panel Layout Panel помещаются во время выполнения.

Например, скажем, у меня две открытые окна с 3 столбцами.Таким образом, есть элементы управления в столбцах 1 и 2, а столбец 3 пуст.Если я закрою окно в столбце 1, я хочу обнаружить столбец, в котором он находился, так что я могу переместить окно в столбце 2 в столбец 1. Я пытаюсь сделать это, чтобы изменить размеры окон в зависимости от того, какмногие окна открываются бок о бок.

Однако я не могу найти способ точно определить, когда столбец является «родительским» столбцом.Родительским контейнером является сама панель макетов таблиц, но я не знаю, как получить искомую информацию.

1 Ответ

0 голосов
/ 18 мая 2018

Вы можете определить положение дочернего элемента управления внутри TableLayoutPanel , используя его метод GetPositionFromControl () , который будет возвращать структуру TableLayoutPanelCellPosition , идентифицирующую Column и Row ячейки, которую занимает элемент управления:

Dim Position As TableLayoutPanelCellPosition = 
                TableLayoutPanel1.GetPositionFromControl([ControlName]) 

Position сообщает Position.Column и Position.Row как целочисленные значения.

Вы также можете определить, какой дочерний элемент управления занимает указанную позицию, используя метод GetControlFromPosition () :

Dim MyControl As Control = TableLayoutPanel1.GetControlFromPosition(0, 0)
...