从组合框填充listview

时间:2010-11-14 20:11:32

标签: visual-studio-2008 listview combobox text-files

我有一个程序,我试图选择一个组合框条目并填充到列表视图中。但是我只能显示其中一个组合框条目(这是最后一个)。我在从文本文件中存储每个单独的记录时遇到问题。有人可以告诉我如何做到这一点吗?

Imports System.IO
Public Class Form1
    Private BooksStreamReader As StreamReader
    Dim str(51) As String
    Structure Book
        Dim ISBN As String
        Dim Title1 As String
        Dim Author As String
        Dim Publisher As String
        Dim Subject_Code As String
        Dim Shelf_Location As String
        Dim Fiction As Boolean
        Dim Price As Decimal
        Dim QDH As Integer

    End Structure
    Dim ISBN As String
    Dim Title1 As String
    Dim Author As String
    Dim Publisher As String
    Dim Subject_Code As String
    Dim Shelf_Location As String
    Dim Fiction As Boolean
    Dim Price As Decimal
    Dim QDH As Integer
    Dim BooksArray(50) As Book
    Dim BookUBound As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim I As Integer = 0
        Try
            BooksStreamReader = New StreamReader("C:\Users\Public\Pictures\Books2.Txt")

        Catch ex As Exception
            MessageBox.Show("File Not Found")

        End Try


        'Display combobox ISBNS
        Do While BooksStreamReader.Peek <> -1

            ISBN = BooksStreamReader.ReadLine()
            Title1 = BooksStreamReader.ReadLine()
            Author = BooksStreamReader.ReadLine()
            Publisher = BooksStreamReader.ReadLine()
            Subject_Code = BooksStreamReader.ReadLine()
            Shelf_Location = BooksStreamReader.ReadLine()
            Fiction = BooksStreamReader.ReadLine()
            Price = BooksStreamReader.ReadLine()
            QDH = BooksStreamReader.ReadLine()
            ComboBox1.Items.Add(ISBN)

        Loop
        BookUBound = BooksArray.Length - 1


    End Sub
    Private Sub DisplayRecord()


    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Form1_Load(sender, e)
        Dim str(200) As String
        Dim selectedindex As Integer = 0

            str(0) = ISBN
            str(1) = Title1
            str(2) = Author
            str(3) = Fiction
            str(4) = Price
            str(5) = QDH
            str(6) = QDH * Price



        If CheckBox1.Checked Then

            Dim itm As New ListViewItem(str)
            ListView1.Items.Add(itm)
        End If


    End Sub
End Class

这是文本文件:

0-671-66398-4
Seven Habits of Highly Effective People
Covey, Stepehn R.
Fireside
BSN
RC-1111
False
 6.99 
 14 
0-934136-27-0
Wine Makers Guide
Nury/Fugelsang
Western Tanager
MST
RC-1112
False
 6.99 
 0 
0-451-16095-9
The Stand
King, Stephen
Signet
MST
RC-1113
True
 7.99 
 0 
0-446-51652-X
Bridges of Madison County
Waller, Robert James
Warner Books
BSS
RC-1114
True
 10.99 
 15 
0-89997-2063
Afoot and Afield in Orange County
Schad, Jerry
Wilderness Press
SLH
RC-1112
False
 11.99 
 7 
0-8041-0753-X
The Kitchen God's Wife
Tan, Amy
Ivy Books
BSS
RC-1114
True
 11.99 
 7 
0-8487-0504-1
Erica Wilson's Quilts of America
Wilson, Erica
Oxmoor House
ART
RC-1112
False
 12.99 
 7 
8423-2218-3
The Way
Null
Tyndale
RLG
RC-1111
False
 12.99 
 0 
0-446-60274-4
The Rules
Fein/Schneider
Warner Books
SLH
RC-1111
False
 14.99 
 1 
0-87826-5299
Know Your Lhaso Apso
Schneider, Earl
The Pet Library LTD
SLH
RC-1112
False
 15.99 
 15 
0-697-12897-0
QuickBasic and QBasic Using Modular Structure
Bradley, Julia Case
B & E Tech
BSN
RC-1111
False
 16.99 
 13 
1-55615-484-4
Code Complete
Mc Connell, Steve
Microsoft Press
BSN
RC-1111
False
 16.99 
 2 

1 个答案:

答案 0 :(得分:0)

这是一个火车残骸,你真的不是很亲密。建议修复:

Structure Book
    Dim ISBN As String
    '' etc
    Public Overrides Function ToString() As String
        Return ISBN
    End Function
End Structure

...
Do While BooksStreamReader.Peek <> -1
    Dim book As New Book
    book.ISBN = BooksStreamReader.ReadLine()
    '' etc
    ComboBox1.Items.Add(book)
Loop
...

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    If CheckBox1.Checked Then
        Dim book As Book = CType(ComboBox1.SelectedItem, Book)
        Dim item As New ListViewItem(book.ISBN)
        item.SubItems.Add(book.Title)
        '' etc...
        ListView1.Items.Add(item)
    End If
End Sub