Vb.net 将图像添加到列表框(visual basic)

Vb.net 将图像添加到列表框(visual basic),vb.net,listbox,Vb.net,Listbox,我有一组网络托管的图像,我需要我的用户能够从每个图像中选择1个。我以为一个列表框可以解决这个问题,但我想不出在列表框中添加一个图像。这可能吗?这样做更好吗?我正在使用最新的免费vb。将ListBox1.DrawMode设置为DrawMode.OwnerDrawFixed或DrawMode.OwnerDrawVariable,并添加用于绘制图像的处理程序 Private Sub listBox1_DrawItem(ByVal sender As System.Object, ByVal e As

我有一组网络托管的图像,我需要我的用户能够从每个图像中选择1个。我以为一个列表框可以解决这个问题,但我想不出在列表框中添加一个图像。这可能吗?这样做更好吗?我正在使用最新的免费vb。

ListBox1.DrawMode
设置为
DrawMode.OwnerDrawFixed
DrawMode.OwnerDrawVariable
,并添加用于绘制图像的处理程序

Private Sub listBox1_DrawItem(ByVal sender As System.Object, ByVal e As   System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
Dim img As Image
img = sender.items(e.Index)
e.Graphics.DrawImage(img, targetsize) 
End Sub
您可以将图像添加到listbox项目集合

Dim img As Image
img = Image.FromFile("c:\tmp.jpg") ' or whatever
ListBox1.Items.Add(img)
...
取而代之的是,它提供了更好的功能,并且不会出现恼人的调整大小错误。列表框从VB6天结转。listview支持列标题、分组等

将Imagelist控件添加到表单中,以存储图像;将其ColorDepth属性设置为32位,并将Listview的LargeImagelist属性设置为刚才添加的imagelist控件(这也可以在代码中完成)

通过以下代码将图像添加到Imagelist:

ImageList1.Images.Add("imagekey", Image.FromStream(yourimagestream))
ListView1.Items.Add("list item title", "imagekey")
通过以下代码将项目添加到Listview:

ImageList1.Images.Add("imagekey", Image.FromStream(yourimagestream))
ListView1.Items.Add("list item title", "imagekey")
“imagekey”是告诉Listview使用哪个图像的一种方法。您也可以对图标使用索引,但指定不存在的索引会导致索引超出范围异常,而不存在的键只会使用无图像

哦,您还希望将Listview Multiselect属性设置为False(如果您只希望他们一次选择一个),并在用户分别单击/双击项目时访问SelectedIndexChanged()和ItemActivate()事件。

是,这是可能的:

Dim imgList As New ImageList

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ListView1.View = View.Details
    ListView1.Width = 500

    ListView1.Columns.Add("Gender", 75, HorizontalAlignment.Left)
    ListView1.Columns.Add("Name", 100, HorizontalAlignment.Left)
    ListView1.Columns.Add("Notes", 350, HorizontalAlignment.Left)
    ListView1.AllowColumnReorder = True

    ListView1.Columns(0).DisplayIndex = 1

    imgList.Images.Add("Male", Image.FromFile("C:\Users\Joe\Pictures\Male-Symbol.jpg"))
    imgList.Images.Add("Female", Image.FromFile("C:\Users\Joe\Pictures\Female-Symbol.jpg"))
    ListView1.SmallImageList = imgList
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim index As Integer
    Select Case True
        Case RadioButton1.Checked
            index = 0
        Case RadioButton2.Checked
            index = 1
    End Select

    Dim lvi As New ListViewItem
    lvi.ImageIndex = index
    lvi.SubItems.Add(TextBox1.Text)
    ListView1.Items.Add(lvi)
End Sub

如何向列表视图中添加项,其中只有一列占据整个列表视图的宽度,每行一项?每次我这样做,它每行添加多个项目…每行多个项目,听起来像是有多个列。选中“添加到项目数组而不是列”。似乎可以工作,但图像为16x16。我们如何调整图像的大小|