登录 / 注册
IT168技术开发频道
IT168首页 > 技术开发 > 技术开发技术 > 正文

在VB.NET程序中任意删除控件

2008-07-16 21:27    来源:  作者: charles_gao & okone96 编辑: 李博(泡泡)

【IT168 技术文档】

  当一个控件是另一个控件的子控件,例如pictruebox里面又有3个子pictruebox,子控件的名字存储在已知的变量当中,而当我们想删除其中任意控件的时候,可以使用如下方法来实现:

先看一段代码:

'控制控件状态
Private Sub mHDR_Control_Status(ByVal p_Enabled As Boolean)
Dim iControls As Integer
Dim i As Integer

iControls = Me.gbxVoyage_HDR.Controls.Count
For i = 0 To iControls - 1
If TypeOf (Me.gbxVoyage_HDR.Controls(i)) Is TextBox Or _
TypeOf (Me.gbxVoyage_HDR.Controls(i)) Is Infragistics.Win.Misc.UltraButton Then
Me.gbxVoyage_HDR.Controls(i).Enabled = p_Enabled
End If
Next

dtpLoad_ETD.Enabled = p_Enabled

If gLoad_Type = "0" Then
btnSave.Enabled = p_Enabled
btnEdit.Enabled = Not p_Enabled
Else
btnSave.Enabled = False
btnEdit.Enabled = False
End If

txtVoyageNO.Enabled = False
End Sub

  简单来说,就是用Me.gbxVoyage_HDR.Controls(i)),如果控件里面还有控件,就再加Controls(i)来控制Me.gbxVoyage_HDR.Controls(i).Controls(i)。

  回到先前的假设,pictruebox里面又有3个子pictruebox,对其中任意一个做删除的主要代码如下:

Public pics(1000) As System.Windows.Forms.PictureBox
dim pic1 as new New PictureBox
dim pic2 as new New PictureBox
dim pic3 as new New PictureBox
dim j as integer=0

dim Mainpic as new New PictureBox
Mainpic .Controls.Add(pic1)
pics(j)=pic1
j+=1
Mainpic .Controls.Add(pic2)
pics(j)=pic2
j+=1
Mainpic .Controls.Add(pic3)
pics(j)=pic3
j+=1

  使用了控件数组,全部删除的时候:Mainpic .Controls.Clear()
  删除第j个控件的时候:Mainpic .Controls.Remove(pics(j))

  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫码送文库金币

编辑推荐
系统架构师大会
系统架构师大会
点击或扫描关注
IT168企业级微信关注送礼
IT168企业级微信关注送礼
扫描关注
首页 评论 返回顶部