在运行时从tablelayoutpanel删除行 [英] Delete rows from tablelayoutpanel at runtime
问题描述
我目前正在VB.net上工作
我想从tablelayoutpanel删除行,而我选择复选框。
当我选中复选框时,应该使用vb.net从tablelayoutpanel删除行
我尝试过:
Private Sub Button5_Click(发送者为对象,e为EventArgs)处理Button5。点击
Dim row As Integer
row = TableLayoutPanel1.RowCount - 1
col col Int32 = 0 To 6
Dim c As Control
c = TableLayoutPanel1.GetControlFromPosition(col,row)
TableLayoutPanel1.Controls.Remove(c)
Next
TableLayoutPanel1.RowStyles .RemoveAt(row)
TableLayoutPanel1.RowCount - = 1
End Sub
在此代码中,行将从最后删除。
Actua我想删除用户选择的行。
I am currently working on VB.net
I want delete rows from tablelayoutpanel while i select the checkbox.
When i am checked checkbox at a time rows should be deleted from tablelayoutpanel by using vb.net
What I have tried:
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim row As Integer
row = TableLayoutPanel1.RowCount - 1
For col As Int32 = 0 To 6
Dim c As Control
c = TableLayoutPanel1.GetControlFromPosition(col, row)
TableLayoutPanel1.Controls.Remove(c)
Next
TableLayoutPanel1.RowStyles.RemoveAt(row)
TableLayoutPanel1.RowCount -= 1
End Sub
In this code, row will delete but from last.
Actually i want to delete row which is selected by user.
推荐答案
看来您已将要删除的行设置为上面代码中的最后一行
此行是问题
It appears you have set the row to be deleted as the last row in your code above
This line is the problem
row = TableLayoutPanel1.RowCount - 1
您应遵循的步骤:
a 。循环遍历TableLayoutPanel1中的所有控件
b。找到复选框,看看是否已选中
c。使用GetPositionFromControl获取其位置(行和列)
d。获取行
e。删除控件
f。删除行
Steps you should follow:
a. Loop through all Controls in TableLayoutPanel1
b. Find checkbox and see if it is checked
c. Get its position (row and Column) using GetPositionFromControl
d. Get the row
e. Delete the control
f. Delete the row
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
希望这有帮助。
Hope this helps.
这篇关于在运行时从tablelayoutpanel删除行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!