将Tabpages和数据动态加载到这些选项卡中

时间:2013-04-15 22:10:58

标签: vb.net

我是新学员。我在Visual Basic中创建一个应用程序,我需要帮助将动态数据从数据库加载到我的标签页。

我希望TabPages名称为“Category Names”(来自Tbl_Category),并且在每个Tabpages中我想要创建按钮,这些按钮都是来自“Tbl_ItemDetails”的记录。

按钮名称将来自“ItemSKU”列。和按钮图像将来自“Item_Image”列。

我搜索了很多但是无法做到。请帮帮我。 如果你们知道其他任何方式(没有tabpages),请分享。谢谢!

这是我尝试过的一些代码。 1.图像代码不起作用。 2.如果我在tabpages上有更多项目,则不会显示任何滚动条。所以我只能看到几个按钮并非全部。 ![在此输入图像说明] [1]

Private Sub AddProductsToTabbedPanel()

    Dim i As Integer = 1
    For Each tp As TabPage In TabControl1.TabPages
        Dim filteredProduct As ObjectQuery(Of Tbl_ItemDetails) = New ObjectQuery(Of Tbl_ItemDetails)(("SELECT VALUE P FROM Tbl_ItemDetails AS P WHERE P.CatID = " + i.ToString), cse)
        Dim flp As FlowLayoutPanel = New FlowLayoutPanel
        flp.Dock = DockStyle.Fill
        For Each tprod As Tbl_ItemDetails In filteredProduct
            Dim b As Button = New Button
            b.Size = New Size(100, 100)
            b.Text = tprod.ItemSKU

            ' ''how can i get image on button. bellow code is not working

            'b.BackgroundImage = tprod.Item_Image
            'b.Image = tprod.Item_Image



            b.Tag = tprod
            AddHandler b.Click, AddressOf Me.UpdateProductList
            flp.Controls.Add(b)

        Next
        tp.Controls.Add(flp)
        i = (i + 1)

    Next

End Sub

1 个答案:

答案 0 :(得分:0)

1:图像如何工作

a)如果您只提供现有文件的路径名

  button.Image = New Bitmap("C:\temp\Info.bmp")

b)如果从包含位图的数据库中获得一个bytearray

  Dim byteArrayFromDB As Byte()
  Dim memStream As System.IO.MemoryStream
  Dim img As Image

  memStream = New System.IO.MemoryStream(byteArrayFromDB)
  img = Image.FromStream(memStream)


2:可滚动的FlowLayoutPanel

 flp.AutoScroll = True