vb.net 删除大量动态创建的按钮

2023-12-22

我是 vb.net 的新程序员,因此对可能的无知表示歉意。 我正在为数据库界面构建一个简单的 GUI,其中包含许多父项和子项。在表单上,​​我根据项目数量(父母/孩子)创建按钮。我已经创建了按钮:

For RowNumber As Integer = 0 To NoOfRows
        Dim Buttoni As New Button
        Buttoni.Location = New Point(LocationX, LocationY)
        Buttoni.Width = 100
        Buttoni.Height = 40
        Buttoni.Visible = True
        Buttoni.Text = DatasetA.Tables(0).Rows(RowNumber).Item("Name")
        ButtonName = "Button" + RowNumber.ToString

        If LocationX < FormWidth - (SpacePerButtonX * 2) Then
            LocationX = LocationX + SpacePerButtonX
        Else
            LocationX = 50
            LocationY = LocationY + SpacePerButtonY
        End If

        AddHandler Buttoni.Click, AddressOf DynamicButtonClick
        Me.Controls.Add(Buttoni)
        Buttoni.BringToFront()  'brings newest buttons to front!
    Next

但我正在努力寻找一种方法来删除按钮,以便为一组新按钮腾出空间来替换它们...我可以在单击时删除单个按钮,但我想删除所有已创建的按钮在重新创建它们之前以这种方式。

我希望这是有道理的,并且有一个相当简单的方法可以实现这一点..?


我将在您的创建循环中向 Tag 属性添加一些值。 这将有助于区分动态创建的按钮和表单中静态创建的按钮。

Buttoni.Tag = 1

然后,要删除按钮,请在 Me.Controls 集合上以相反的顺序循环,
检查是否有按钮以及 Tag 属性是否为 Nothing

For x as Integer = Me.Controls.Count - 1 to 0 step -1)
    Dim b as Button = TryCast(Me.Controls(x), Button)
    If b IsNot Nothing AndAlso b.Tag IsNot Nothing then
        b.Dispose()       '' NOTE: disposing the button also removes it
    End If
Next
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vb.net 删除大量动态创建的按钮 的相关文章

  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to
  • 在 Swift 中将动态 Int 变量从一个类传递到另一个类

    我是 swift 2 的新手 我陷入了将变量从一个类传递到另一个类的过程中 我有一个类 GameScene 我有一个公共变量score并且在更新功能中不断更新 我想发送score两个节点相互碰撞时的值 一旦它发生碰撞 我就会使用 mainv
  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • 下载需要使用 vb.net/c# 进行身份验证的文件?

    与 CSV 文件类似 可以从以下位置下载http download finance yahoo com d quotes csv s RHT 如何下载需要身份验证的文件 我可以简单地使用 My Computer Network Downlo
  • 没有为 1 个或多个必需参数给出值。更新SQL

    我正在编写一个程序 当用户在列表视图上选择记录时 该程序会更新密码或积分 我收到错误 没有为 1 个或多个必需参数给出值 我不知道如何纠正 我是否遗漏了一些明显的东西 Dim sql As String UPDATE Users SET P
  • android中根据屏幕尺寸计算图像尺寸

    我正在尝试根据屏幕尺寸计算图像高度和宽度 我从后端获取 5 x 7 尺寸的图像 为了将像素乘以 72 进行转换 我有 360 X 504 尺寸的图像 对于 360 X 504 我的动态透明矩形区域将显示为 1 223 x 1 179 即 8
  • 如何设置 Firefox 配置文件:Selenium RC、.Net 客户端驱动程序?

    我正在使用 Selenium RC Net 客户端驱动程序 我在 c selenium 目录中创建了一个 Firefox 配置文件 这是我的代码 Dim MySelenium As ISelenium Nothing MySelenium
  • 需要从 DCOM 配置中删除对象 (DCOMCNFG)

    我们有一个带有 activex exe 和 com dll 的应用程序 安装后 我们会在 DCOM 配置中创建一个对象 如果我们尝试从 DCOM 配置中删除该对象 它就会关闭 直到我们再次重新打开它 想知道是否有任何程序可以从 DCOM 及
  • Android - 保存动态更改布局的状态

    我有一个布局 用户可以在其中添加按钮并将其放置在他们想要的位置 我想允许用户保存他们的布局 以便下次打开应用程序时加载它 有谁知道我是否可以将文件保存到 SD 卡上 或者 我可以使用某种layout getXml 方法并将其放入我的应用程序
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • 向 ExpandoObject 添加方法时,“关键字 'this' 在静态属性、静态方法或静态字段初始值设定项中无效”

    我尝试向 ExpandoObject 添加一个动态方法 该方法将返回属性 动态添加 给它 但它总是给我错误 我在这里做错了什么吗 using System using System Collections Generic using Sys
  • vb6 中双精度计算的值不正确

    当在 vb6 中添加 2 个值时 我得到一些奇怪的行为 当在立即窗口中针对不同情况打印变量 sum 双精度型 时 如下所示 我得到的结果为 sum 0 sum 0 sum 0 sum 74 46 0 41 sum 74 87 sum 97
  • 使用 JSON.net 反序列化

    我对 json JSON net 等都很陌生 在这里阅读类似的问题后 我无法让我的代码工作 我的错误到底是什么 我监督了什么 出于测试目的是否可以跳过 链接 和 元 类 或者我是否必须定义每个属性 我得到以下 REST 输出 codes h
  • 更改组合框下拉列表边框的颜色

    My code Private Sub ComboBox2 DrawItem sender As Object e As DrawItemEventArgs Handles ComboBox2 DrawItem If e Index lt
  • 数据读取过程中遇到致命错误

    我正在进行定期更新表扫描 Using connect1 As New MySqlConnection ConnectLocalhost serverString connect1 Open Dim cmd New MySqlCommand
  • VB.NET 中的类型比较

    如何比较 VB NET 中的类型数据类型 我的代码 Private Function Equal ByVal parameter As String ByVal paramenterName As String ByVal dataType
  • OpenGL (ES 2.0) 动态改变线宽

    我目前正在使用大量的工具绘制模型GL LINES全部在统一的半径内 我知道glLineWidth将改变半径all线 但它们各自应该有不同的半径 我想知道是否可以使用glLineWidth 以不同的方式 或其他功能 我还应该怎么做呢 将它们渲
  • iphone:sizeWithFont 方法无法识别字符串中的“\n”

    我使用下面的代码来计算字符串标签的大小 NSString str It s n that n don t n CGSize size str sizeWithFont UIFont fontWithName Verdana size 12
  • VB无法访问不同项目中的类,相同的解决方案

    我正在使用 VB for Visual Studio 工作 并且项目中有一个类需要将变量声明为另一个项目中的类 对于可视化 解决方案 A 包含 Project1 和 Project2 在 Project1 的类中 我需要声明一个变量作为 P
  • Django 中的动态用户菜单

    有没有办法让用户菜单根据分配给用户所属用户组的权限而变化 我正在考虑在视图级别检查这些权限 并删除用户无权的菜单选项 是的 可以访问模板中的用户对象并检查用户是否是员工 如下所示 if user is staff li a href adm

随机推荐