在visual basic中对图片框进行排序/定位,例如网格?

时间:2017-08-01 09:22:40

标签: vb.net

我有 1个文本框动态整数作为文本(可以是1到35)(产品数量)也 35 隐藏前 - 创建图片框(picturebox1,picturebox2等)('因为我不知道如何在运行时创建并在以后正确地引用(句柄)而没有错误)然后,使用循环 i设置为可见 动态我需要的图片框(取决于产品数量)

For i As Integer = 1 To NumberOfProducts.Text
        If Me.Controls.ContainsKey("PictureBox" & i) Then
            Me.Controls("PictureBox" & i).Visible = True
        End if
next

然后,我创建了一个系统来确定最佳(表格)图片宽度/高度尺寸,具体取决于可用产品的数量......以最佳屏幕填充方式显示像网格垂直显示)....对于31-35产品,网格必须是5列* 7,对于21-24产品必须是4x6,3prod。必须是2x2等...

If Val(NumberOfProducts.Text) > 30 Then
        grosso = Me.Width / 5
        lungo = Me.Height / 7
        Horix.Text = "5"
        Vertix.Text = "7"
    ElseIf Val(NumberOfProducts.Text) > 20 Then
        grosso  = Me.Width / 4 
        lungo = Me.Height / 6
        Horix.Text = "4"
        Vertix.Text = "6"
    ElseIf Val(NumberOfProducts.Text) > 2 Then
        grosso  = Me.Width / 2 
        lungo = Me.Height / 2
        Horix.Text = "2"
        Vertix.Text = "2"
    ElseIf Val(NumberOfProducts.Text) > 1 Then
        grosso = Me.Width / 1 
        lungo = Me.Height / 2
        Horix.Text = "1"
        Vertix.Text = "2"
    ElseIf Val(NumberOfProducts.Text) = 1 Then
        grosso = Me.Width / 1 
        lungo = Me.Height / 1
        Horix.Text = "1"
        Vertix.Text = "1"
    End If

然后得到" grosso"的文本框列表价值为" .width"和" lungo" as"。高度" .... '因为我认为它是以半自动方式为我的表格中的所有图片框分配相同的设置..

我创建了Horix.text和vertix.text值,就好像它可以在以后用作参考...我想我必须找到第一个图片框(所有网格可能性的相同位置作为对其他图片框位置的引用)

 PictureBox1.Location = New Point(0, 0)

此时我不知道该做什么!!,设置图片框位置,以便网格化!我相信我必须在定位第一个图片框后使用循环,循环自框#2到numberofproducts可用 ...减去1到horix.text(每行的最大项目)并检查每个循环是否">"比horix ...然后是一个引用最后一个图片框的跳转(.top + picturebox.height ...并且还将1减去vertix.text值......直到0但是:

我不知道如何设置引用同一行上最后一个图片框的新位置!!我试过了:

for i as integer = 2 to numberofproducts.text
If Me.Controls.ContainsKey("PictureBox" & i) Then
            Me.Controls("PictureBox" & i).left = "PictureBox" & i -1).left
        End if
next

但它不起作用,我得到" .left不是控制属性"或某些像那样我也不知道如何添加并确定何时跳转到下一行或列 ......任何建议? (代码示例)

0 个答案:

没有答案