开发者

Populating listview from combo box

I have a program where I am trying to select a combobox entry and populate into the listview. However I can only get one of the combo box entries to show(which is the last). I am having a problem storing each individual record from a text file. Can someone show me someideas on how to do this?

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)开发者_StackOverflow中文版 = 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

Here is the text file:

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 


This is rather a train wreck, you are really not close. Suggested fixes:

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜