Скрыть строку в TableLayout - PullRequest
0 голосов
/ 04 мая 2018

У меня есть макет таблицы, который содержит три строки и один столбец:

enter image description here

Я хочу скрыть второй ряд до завершения процесса, например:

enter image description here

В интернете я нашел две вещи:

  1. Удалить строку - Я не хочу удалять строку , просто временно скрыть ее!
  2. Установить высоту строки в 0 - не сработало, по какой-то причине часть внутренних данных все еще была видна.

Так как же я действительно скрываю ряд? Не удалять, не изменять размер, но фактически скрывать его от глаз.

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Если стиль размера строки макета таблицы имеет автоматический размер, можно показать поведение «показать / скрыть», установив для свойства visible содержимого строки (например, groupbox) значение true или false.

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

Скрыть и показать строки в TableLayoutPanel не совсем просто.

Исходя из вашего макета пользовательского интерфейса, я предполагаю, что первая и третья строки установлены на Absolute, а вторая - AutoSize или Percent. Я также предполагаю, что Dock для панели установлено на Fill. Вот что я хотел бы сделать в этом сценарии.

Добавить пустую строку в конце с SizeType, установленным в AutoSize. Когда действие пользователя начинается (скажем нажатием кнопки), сделайте следующее:

// RowStyles index is index of the row you are dealing with
tableLayoutPanel1.RowStyles[1].SizeType = SizeType.Absolute;
tableLayoutPanel1.RowStyles[1].Height = 0;

Поскольку в конце есть строка автоматического размера, все остальные строки будут перемещаться вверх, а в нижней части вашей формы будет пустое пространство. Это сохранит желаемый макет. Когда действие завершено, вы можете установить соответствующую строку обратно на Percent или AutoSize.

...