在运行时从tablelayoutpanel删除行 [英] Delete rows from tablelayoutpanel at runtime

查看:241
本文介绍了在运行时从tablelayoutpanel删除行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆