Максимизация панели tablelayoutpanel
В TableLayoutPanel мне нужно развернуть панель, дважды щелкнув по ней. Я имею в виду, что он становится одним панельным управлением, а другие временно скрываются. В этом случае элемент управления table layout panel получает элемент управления, который включает только одну панель или показывает только одну панель, которая заполняется внутри него. Затем, если панель, которая теперь максимизируется, будет дважды щелкнута снова, исходная таблица панелей появится снова. Есть ли для этого какой-то прямой путь? Что я могу сделать, чтобы управлять им лучше?
Что я уже пробовал:
Теперь я вручную удаляю элементы управления из элемента управления TableLayoutPanel, а затем воссоздаю его после перехода к восстановлению. Но у этого метода есть побочные эффекты, которых мне нужно избегать.
В следующей попытке я изменил код на:
private int _columnCount, _rowCount; private void player_DoubleClicked(object sender, IDisplayable displayable) { if (tableLayout.ColumnCount == 1 && tableLayout.RowCount == 1) { tableLayout.ColumnCount = _columnCount; tableLayout.RowCount = _rowCount; foreach (var ctrl in tableLayout.Controls) { var panel = ctrl as UserControl; if (ctrl != sender) panel.Visible = true; } } else { foreach (var ctrl in tableLayout.Controls) { var panel = ctrl as UserControl; if (ctrl != sender) panel.Visible = false; } _columnCount = tableLayout.ColumnCount; _rowCount = tableLayout.RowCount; tableLayout.RowCount = 1; tableLayout.ColumnCount = 1; } }