winforms c# tableLayoutPanel1 должна показывать ячейки в зависимости от видимой зоны. Если окно растягивают, то элементы в таблице перестраиваются таким образом, что бы в видимых строках не оставалось пустых ячеек. Так, например,
если видимая зона расширилась на 1 видимую ячейку справа, тогда 1 элемент второй строки переместился на первую строку на эту ставшую видимой ячейку, а элементы второй строки сместились на ячейку влево.
csharp
// В этом примере предполагается, что у вас уже есть созданная форма и на ней есть TableLayoutPanel с некоторыми элементами управления
// Обработчик события изменения размеров формы
private void Form_Resize(object sender, EventArgs e)
{
// Определяем новую видимую зону TableLayoutPanel, исходя из нового размера формы
int visibleColumns = tableLayoutPanel1.Width / tableLayoutPanel1.ColumnCount;
int visibleRows = tableLayoutPanel1.Height / tableLayoutPanel1.RowCount;
// Устанавливаем новое положение и размеры каждого элемента управления в TableLayoutPanel
foreach (Control control in tableLayoutPanel1.Controls)
{
// Получаем позицию ячейки элемента управления
TableLayoutPanelCellPosition cellPosition = tableLayoutPanel1.GetCellPosition(control);
// Проверяем, видима ли ячейка элемента управления в новой видимой зоне
if (cellPosition.Column < visibleColumns && cellPosition.Row < visibleRows)
{
// Ячейка видна - оставляем ее на месте
}
else
{
// Ячейка не видна - перемещаем элемент управления на первую видимую ячейку
tableLayoutPanel1.SetCellPosition(control, new TableLayoutPanelCellPosition(0, 0));
}
}
// Устанавливаем новую видимую зону TableLayoutPanel
tableLayoutPanel1.VisibleCellCount = visibleColumns * visibleRows;
// Обновляем TableLayoutPanel
tableLayoutPanel1.PerformLayout();
}
// Добавляем обработчик события Resize в конструкторе формы или в методе инициализации формы
public Form1()
{
InitializeComponent();
// Добавляем обработчик события изменения размеров формы
this.Resize += Form_Resize;
}
Данный код позволит перемещать элементы в TableLayoutPanel в зависимости от видимой зоны и перестраивать их таким образом, чтобы в видимых строках не оставалось пустых ячеек. Не забудьте подключить необходимые пространства имен для работы с элементами управления WinForms и TableLayoutPanel.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет