我有2个文本框:
35个隐藏的图片框,其中包含来自.imagelocation-名为picturebox1,picturebox2,picturebox3等产品的加载图片 2个按钮:Sale&加油
销售按钮:一个循环,用于显示可供销售的产品图像数量(从销售号码文本框中计算),然后我将它们分类添加到flowlayoutpanel中:
For i As Integer = 1 To numberofproductstosale.Text
If Me.Controls.ContainsKey("PictureBox" & i) Then
Me.Controls("PictureBox" & i).Visible = True
Me.Controls("PictureBox" & i).Margin = New Padding(0)
Dim p1 As PictureBox = CType(Me.Controls("PictureBox" & i), PictureBox)
FlowLayoutPanel1.Controls.Add(p1)
End If
Next
IT工作!并正确显示每个项目...... 但是,我想重复使用相同的flowlayoutpanel来显示加油项目,但是我没有达到这个目的!
曾经,我尝试过在REFUEL BUTTON使用:
FlowLayoutPanel1.Controls.clear()
然后添加类似的代码以添加+ unhidde第一次...但是它不工作,我也尝试了一个新的循环来单独删除35个元素(picbxs)...并再次添加类似的第一个代码但不起作用,单独个人删除+隐藏看起来像这样:
For i2 As Integer = 1 To 35
If Me.Controls.ContainsKey("PictureBox" & i2) Then
Me.Controls("PictureBox" & i2).Visible = False
Dim p2 As PictureBox = CType(Me.Controls("PictureBox" & i2), PictureBox)
FlowLayoutPanel1.Controls.Remove(p2)
End If
Next
我认为正确删除和隐藏,因为每个项目都从屏幕上消失了。 然后我尝试再次添加和取消隐藏图片框,但现在由加密列表(文本框)的数量确定使用此代码:
For i3 As Integer = 1 To productstorefuel.Text
If Me.Controls.ContainsKey("PictureBox" & i3) Then
Me.Controls("PictureBox" & i3).Visible = True
Me.Controls("PictureBox" & i3).Margin = New Padding(0)
Dim p3 As PictureBox = CType(Me.Controls("PictureBox" & i3), PictureBox)
FlowLayoutPanel1.Controls.Add(p3)
End If
next
我的代码看起来很好,整洁和逻辑!为什么不工作?我在不同的循环使用i,i2,i3以避免混淆...更好:我也试图取消隐藏 - 添加到第二个流动布局面板,隐藏第一个面板并带到前面第二个面板,但不起作用!..我只能在屏幕上找到第一个带有排序项目的面板..那部分代码看起来像这样
FlowLayoutPanel1.visible = false
FlowLayoutPanel2.visible = true
For i3 As Integer = 1 To productstorefuel.Text
If Me.Controls.ContainsKey("PictureBox" & i3) Then
Me.Controls("PictureBox" & i3).Visible = True
Me.Controls("PictureBox" & i3).Margin = New Padding(0)
Dim p3 As PictureBox = CType(Me.Controls("PictureBox" & i3), PictureBox)
FlowLayoutPanel2.Controls.Add(p3)
End If
next
FlowLayoutPanel2.BringToFront()
注意:我知道代码的第一部分(销售部分)很好,因为我的按钮实际上是按钮按钮方面,然后,我可以看到处理速度'因为我取消选中销售按钮图片框只是hidde /显示非常快但当我点击butons(销售加油)我几乎可以检测到图片框图像的缓慢重新加载。但点击加油(检查或取消检查)没有任何反应!!屏幕仍然是空的...我认为问题是我如何删除它。有什么建议?? 提前谢谢!
答案 0 :(得分:0)
我用这种方式解决了:控件(在flowlayoutpanel
内部)必须返回到form1
容器,而不是清除或移除它们,方法是将它们添加回form1
他们被添加到flowpanel
的方式。然后他们可以正确使用!