如何避免Panel内的UserControl重复创建,已存在则前置显示
解决方法
你只需要在创建新实例前,先检查Panel2中是否已经存在create_item类型的控件,逻辑如下:
- 遍历
Panel2的控件集合,查找是否有create_item的实例 - 如果找到,直接将其前置显示
- 如果没找到,再创建新实例并添加到
Panel2中
修改后的代码如下:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' 查找Panel2中已存在的create_item实例 Dim existingUc = Panel2.Controls.OfType(Of create_item)().FirstOrDefault() If existingUc IsNot Nothing Then ' 已存在,将其前置 existingUc.BringToFront() Else ' 不存在,创建新实例并添加 Dim newUc = New create_item() Panel2.Controls.Add(newUc) newUc.BringToFront() End If End Sub
代码说明
OfType(Of create_item)():筛选出Panel2中所有create_item类型的控件FirstOrDefault():获取第一个匹配的实例,如果没有则返回Nothing- 找到实例时调用
BringToFront()确保它显示在最上层,未找到则新建并添加
内容的提问来源于stack exchange,提问作者RUSHI HARDWARE
相关产品推荐
相关产品推荐

