Member 13094227 Ответов: 1

Удаление строк из tablelayoutpanel во время выполнения


В настоящее время я работаю над VB.net

Я хочу удалить строки из tablelayoutpanel, пока я устанавливаю флажок.

Когда я проверил флажок, в то время, строки должны быть удалены от управления tablelayoutpanel с помощью vb.net

Что я уже пробовал:

Private Sub Button5_Click (sender As Object, e As EventArgs) обрабатывает Button5.Щелчок

Тусклая строка как целое число
row = TableLayoutPanel1.Количество строк - 1
Для col As Int32 = от 0 до 6
Дим С в качестве контроля
c = TableLayoutPanel1.GetControlFromPosition(col, row)
TableLayoutPanel1.Управления.Удалить(c)
Следующий
TableLayoutPanel1.Гребные стили.RemoveAt(строка)
TableLayoutPanel1.Количество строк -= 1

Конец Подводной Лодки

В этом коде строка будет удалена, но из последней.

На самом деле я хочу удалить строку, выбранную пользователем.

1 Ответов

Рейтинг:
0

kasbaba

Похоже, вы установили строку для удаления в качестве последней строки в приведенном выше коде

Эта линия и есть проблема

row = TableLayoutPanel1.RowCount - 1


Шаги, которые вы должны выполнить:

a. цикл через все элементы управления в TableLayoutPanel1
б. найдите флажок и посмотрите, установлен ли он
c. получить его позицию (строку и столбец) с помощью GetPositionFromControl
d. получить строку
e. удалите элемент управления
f. удалить строку

DIM RowToDelete as Integer
For Each CNTRL in TableLayoutPane1.Controls
If (TypeOf CNTRL Is CheckBox) AndAlso DirectCast(CNTRL, CheckBox).Checked Then
		RowToDelete = TableLayoutPanel1.GetPositionFromControl(CNTRL).Row
		TableLayoutPanel1.Controls.Remove(CNTRL)
		Exit For
End If
Next

TableLayoutPanel1.RowStyles.RemoveAt(RowToDelete)
TableLayoutPanel1.RowCount -= 1


Надеюсь, это поможет.