Kann Dir dafür ein recht gutes Beispiel schicken, was über eine Klasse geht, musst halt dann grad noch das Einlesen der Datei noch einfügen, wobei das kein Problem sein dürfte, denke ich doch mal
Hier der Code vom Formular:
Public Class StartForm
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents lblInfo As System.Windows.Forms.Label
Friend WithEvents btnLast As System.Windows.Forms.Button
Friend WithEvents btnNext As System.Windows.Forms.Button
Friend WithEvents btnPrevious As System.Windows.Forms.Button
Friend WithEvents txtLastName As System.Windows.Forms.TextBox
Friend WithEvents label3 As System.Windows.Forms.Label
Friend WithEvents txtFirstName As System.Windows.Forms.TextBox
Friend WithEvents label2 As System.Windows.Forms.Label
Friend WithEvents txtID As System.Windows.Forms.TextBox
Friend WithEvents label1 As System.Windows.Forms.Label
Friend WithEvents btnFirst As System.Windows.Forms.Button
Friend WithEvents lbxDemo As System.Windows.Forms.ListBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.lblInfo = New System.Windows.Forms.Label()
Me.btnLast = New System.Windows.Forms.Button()
Me.btnNext = New System.Windows.Forms.Button()
Me.btnPrevious = New System.Windows.Forms.Button()
Me.txtLastName = New System.Windows.Forms.TextBox()
Me.label3 = New System.Windows.Forms.Label()
Me.txtFirstName = New System.Windows.Forms.TextBox()
Me.label2 = New System.Windows.Forms.Label()
Me.txtID = New System.Windows.Forms.TextBox()
Me.label1 = New System.Windows.Forms.Label()
Me.btnFirst = New System.Windows.Forms.Button()
Me.lbxDemo = New System.Windows.Forms.ListBox()
Me.SuspendLayout()
'
'lblInfo
'
Me.lblInfo.Location = New System.Drawing.Point(8, 136)
Me.lblInfo.Name = "lblInfo"
Me.lblInfo.Size = New System.Drawing.Size(360, 23)
Me.lblInfo.TabIndex = 23
'
'btnLast
'
Me.btnLast.Font = New System.Drawing.Font("Microsoft Sans Serif", _
8.25!, System.Drawing.FontStyle.Regular, _
System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnLast.Location = New System.Drawing.Point(224, 160)
Me.btnLast.Name = "btnLast"
Me.btnLast.Size = New System.Drawing.Size(66, 23)
Me.btnLast.TabIndex = 22
Me.btnLast.Text = "Letzter"
'
'btnNext
'
Me.btnNext.Font = New System.Drawing.Font("Microsoft Sans Serif", _
8.25!, System.Drawing.FontStyle.Regular, _
System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnNext.Location = New System.Drawing.Point(152, 160)
Me.btnNext.Name = "btnNext"
Me.btnNext.Size = New System.Drawing.Size(66, 23)
Me.btnNext.TabIndex = 21
Me.btnNext.Text = "Nächster"
'
'btnPrevious
'
Me.btnPrevious.Font = New System.Drawing.Font("Microsoft Sans Serif", _
8.25!, System.Drawing.FontStyle.Regular, _
System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnPrevious.Location = New System.Drawing.Point(80, 160)
Me.btnPrevious.Name = "btnPrevious"
Me.btnPrevious.Size = New System.Drawing.Size(66, 23)
Me.btnPrevious.TabIndex = 20
Me.btnPrevious.Text = "Vorheriger"
'
'txtLastName
'
Me.txtLastName.Location = New System.Drawing.Point(240, 56)
Me.txtLastName.Name = "txtLastName"
Me.txtLastName.Size = New System.Drawing.Size(136, 20)
Me.txtLastName.TabIndex = 19
Me.txtLastName.Text = ""
'
'label3
'
Me.label3.Location = New System.Drawing.Point(168, 56)
Me.label3.Name = "label3"
Me.label3.TabIndex = 18
Me.label3.Text = "Nachname"
'
'txtFirstName
'
Me.txtFirstName.Location = New System.Drawing.Point(240, 32)
Me.txtFirstName.Name = "txtFirstName"
Me.txtFirstName.Size = New System.Drawing.Size(136, 20)
Me.txtFirstName.TabIndex = 17
Me.txtFirstName.Text = ""
'
'label2
'
Me.label2.Location = New System.Drawing.Point(168, 32)
Me.label2.Name = "label2"
Me.label2.TabIndex = 16
Me.label2.Text = "Vorname"
'
'txtID
'
Me.txtID.Location = New System.Drawing.Point(240, 8)
Me.txtID.Name = "txtID"
Me.txtID.Size = New System.Drawing.Size(136, 20)
Me.txtID.TabIndex = 15
Me.txtID.Text = ""
'
'label1
'
Me.label1.Location = New System.Drawing.Point(168, 8)
Me.label1.Name = "label1"
Me.label1.TabIndex = 14
Me.label1.Text = "ID"
'
'btnFirst
'
Me.btnFirst.Font = New System.Drawing.Font("Microsoft Sans Serif", _
8.25!, System.Drawing.FontStyle.Regular, _
System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnFirst.Location = New System.Drawing.Point(8, 160)
Me.btnFirst.Name = "btnFirst"
Me.btnFirst.Size = New System.Drawing.Size(66, 23)
Me.btnFirst.TabIndex = 13
Me.btnFirst.Text = "Erster"
'
'lbxDemo
'
Me.lbxDemo.Location = New System.Drawing.Point(8, 8)
Me.lbxDemo.Name = "lbxDemo"
Me.lbxDemo.Size = New System.Drawing.Size(152, 121)
Me.lbxDemo.TabIndex = 12
'
'StartForm
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(400, 205)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.lblInfo, _
Me.btnLast, Me.btnNext, Me.btnPrevious, Me.txtLastName, Me.label3, _
Me.txtFirstName, Me.label2, Me.txtID, Me.label1, Me.btnFirst, _
Me.lbxDemo})
Me.Name = "StartForm"
Me.Text = "Datenbindung"
Me.ResumeLayout(False)
End Sub
#End Region
' private Eigenschaft für die Auflistung
Private persons As ArrayList = New ArrayList()
Private Sub StartForm_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
' ArrayList erzeugen und mit Personen füllen
'HIER KANNST DU DEINE TEXTDATEI EINLESEN UND DANN GRAD ÜBER PERSONS.Add
' EINE NEUE PERSON EINFÜGEN.
persons = New ArrayList()
persons.Add(New Person(1, "Zaphod", "Beeblebrox"))
persons.Add(New Person(2, "Ford", "Prefect"))
persons.Add(New Person(3, "Tricia", "McMillan"))
persons.Add(New Person(4, "Arthur", "Dent"))
persons.Add(New Person(5, "Marvin", ""))
' Die Auflistung an die Eigenschaft Text
' der Textboxen anbinden
If persons.Count > 0 Then
' Tipp für die Praxis: Die einfache Datenbindung
' funktioniert nur, wenn auch Daten vorhanden sind
txtID.DataBindings.Add("Text", persons, "ID")
txtFirstName.DataBindings.Add("Text", persons, "FirstName")
txtLastName.DataBindings.Add("Text", persons, "LastName")
End If
' Die Auflistung an die Listbox anbinden
lbxDemo.DataSource = persons
' Die Ereignisbehandlungsmethode für das
' PositionChanged-Ereignis des Bindungs-
' kontext-Objekts zuweisen
AddHandler Me.BindingContext(persons).PositionChanged, _
AddressOf persons_PositionChanged
End Sub
' Ereignisbehandlungsmethode für das
' PositionChanged-Ereignis des Bindungskontext-
' Objekts für die Personen-Auflistung
Private Sub persons_PositionChanged(ByVal sender As Object, _
ByVal e As System.EventArgs)
lblInfo.Text = "Datensatz " & _
(Me.BindingContext(persons).Position + 1) & _
" von " & Me.BindingContext(persons).Count
End Sub
Private Sub btnFirst_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles btnFirst.Click
' Auf den ersten Datensatz stellen
Me.BindingContext(persons).Position = 0
End Sub
Private Sub btnPrevious_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles btnPrevious.Click
' Auf den vorherigen Datensatz stellen,
' wenn die Auflistung nicht schon auf dem
' ersten Datensatz steht
If Me.BindingContext(persons).Position > 0 Then
Me.BindingContext(persons).Position -= 1
End If
End Sub
Private Sub btnNext_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles btnNext.Click
' Auf den nächsten Datensatz stellen,
' wenn die Auflistung nicht schon auf dem
' letzten Datensatz steht
If Me.BindingContext(persons).Position < _
Me.BindingContext(persons).Count Then
Me.BindingContext(persons).Position += 1
End If
End Sub
Private Sub btnLast_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) _
Handles btnLast.Click
' Auf den letzten Datensatz stellen
Me.BindingContext(persons).Position = _
Me.BindingContext(persons).Count - 1
End Sub
End Class Hier ist die Klasse(Name der Klasse: Person):
Falls du es anders brauchst, dann ändere grad deine Klasse, falls du damit Probs hast, dann melde Dich grad noch mal entweder per Mail oder einfach ins Forum schreiben....
Public Class Person
Private idValue As Integer
Private firstNameValue As String
Private lastNameValue As String
' Der Konstruktor
Public Sub New(ByVal id As Integer, ByVal firstName As String, _
ByVal lastName As String)
Me.idValue = id
Me.firstNameValue = firstName
Me.lastNameValue = lastName
End Sub
' Zugriffsmethoden für die Eigenschaften
Public ReadOnly Property ID() As Integer
Get
Return Me.idValue
End Get
End Property
Public ReadOnly Property FirstName() As String
Get
Return Me.firstNameValue
End Get
End Property
Public ReadOnly Property LastName() As String
Get
Return Me.lastNameValue
End Get
End Property
' Die ToString-Methode
Public Overrides Function ToString() As String
Return Me.FirstName & " " & Me.LastName
End Function
End Class Hope it helps
ist denke ich die einfachste Lösung, nach meiner Meinung, ohne viel zu schreiben ..
cya
Gruß
Vampire |