vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Daten einer Listview beim Start vorhanden 
Autor: ProXy
Datum: 08.09.08 10:30

Da der Code der ausgeführt wird, wenn die Applikation startet bzw. man Button3 drückt, identisch ist, kannst du diesen in eine Funktion packen. Nun musst du beim Laden der Applikation nur die Funktion mit dem entsprechenden Dateinamen aufrufen, das gleiche gilt auch bei Klicken von Button3. Du hast also nur einmal den Code, kannst ihn aber an beliebigen Stellen ausführen..
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Daten einer Listview beim Start vorhanden 
Autor: Anton_S
Datum: 07.09.08 17:02

Hallo,

ich habe ein ListView in 3 Spalten unterteilt, (Name,Vorname,Adresse) in die ich über 3 TextBoxen Sachen eintragen kann.
Über einen Button (Eintrag hinzufügen) übernimmt er mir den Wert in die List View.
Ich kann auch das Eingetragene Speichern und Öffen. Wie mache ich es das eine ausgewählte Datei beim Start geladen wird.
Das ganze sieht so aus:


Imports System.IO
 
Public Class Form2
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        initUI()
    End Sub
 
    ' Benutzerschnittstelle initialisieren
    Public Sub initUI()
        Dim ftSize As Integer = Convert.ToInt32(ListView1.Font.SizeInPoints)
        ListView1.Columns.Add("Name", 15 * ftSize, HorizontalAlignment.Center)
        ListView1.Columns.Add("Vorname", 15 * ftSize, _
          HorizontalAlignment.Center)
        ListView1.Columns.Add("Adresse", 30 * ftSize, HorizontalAlignment.Left)
 
        TextBox3.Clear()
        TextBox4.Clear()
        TextBox4.Clear()
    End Sub
 
    ' Speichern:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        Try
            With SaveFileDialog1
                .Title = "Datei speichern"
                .InitialDirectory = Application.StartupPath
                .FileName = "Test.dat"
                .Filter = "Dateien (*.dat)|*.dat|Alle Dateien (*.*)|*.*"
                If .ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    Dim fs As New FileStream(.FileName, FileMode.Create, _
                      FileAccess.Write)
                    Dim strmWriter As New StreamWriter(fs)
                    For i As Integer = 0 To ListView1.Items.Count - 1          _
                      ' alle Zeilen (Items) der ListView
                        For j As Integer = 0 To ListView1.Items( _
                        i).SubItems.Count - 1  ' alle Spalten (SubItems) der 
                        ' ListView
                            Dim sep As String = String.Empty
                            If j > 0 Then sep = "\" ' einzelne Einträge trennen
                            strmWriter.Write(sep + ListView1.Items(i).SubItems( _
                              j).Text)
                        Next j
                        strmWriter.WriteLine()
                    Next i
                    strmWriter.Flush()
                    strmWriter.Close()
                End If
            End With
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten einer Listview beim Start vorhanden 
Autor: Anton_S
Datum: 07.09.08 17:03

    ' Laden:
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button3.Click
        Try
            With OpenFileDialog1
                .Title = "Datei öffnen"
                .InitialDirectory = Application.StartupPath
                .FileName = "Test.dat"
                .Filter = "Dateien (*.dat)|*.dat|Alle Dateien (*.*)|*.*"
                .RestoreDirectory = True
                If .ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    Dim fs As New FileStream(OpenFileDialog1.FileName, _
                      FileMode.Open, FileAccess.Read)
                    Dim strmReader As New StreamReader(fs)
                    Dim line As String = strmReader.ReadLine()      ' erste 
                    ' Zeile lesen
                    Dim start As Integer = 0
                    Do While line <> Nothing
                        Dim ende As Integer = line.IndexOf("\", start)    ' 
                        ' Ende des ersten Eintrags
                        Dim s1 As String = line.Substring(start, ende)    ' 
                        ' ersten Eintrag lesen
 
                        start = ende + 1                         ' Anfang des 
                        ' zweiten Eintrags
                        ende = line.IndexOf("\", start)          ' Ende des 
                        ' zweiten Eintrags
                        Dim s2 As String = line.Substring(start, ende - start)  _
                           ' zweiten Eintrag lesen
 
                        start = ende + 1                            ' Anfang 
                        ' des letzten Eintrags 
                        Dim s3 As String = line.Substring(start)    ' letzten 
                        ' Eintrag lesen
 
                        Dim lvi As New ListViewItem(New String() {s1, s2, s3})
                        ListView1.Items.Add(lvi)
 
                        start = 0                               ' Zurücksetzen
                        line = strmReader.ReadLine()            ' nächste Zeile 
                        ' lesen
                    Loop
                    strmReader.Close()
                End If
            End With
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
 
    ' Eintrag hinzufügen:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim itms() As String = New String() {TextBox2.Text, TextBox3.Text, _
        TextBox4.Text}
        Dim lvi As New ListViewItem(itms)
        ListView1.Items.Add(lvi)
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten einer Listview beim Start vorhanden 
Autor: ModeratorDieter (Moderator)
Datum: 08.09.08 08:12

In diesem Fall solltest Du den Code zum Laden in eine eigene Prozedur auslagern und diese mit einem Parameter aufrufen (= Dateiname):
Private Sub LoadData(ByVal Filename As String)
  Dim fs As New FileStream(FileName, FileMode.Open, FileAccess.Read)
  Dim strmReader As New StreamReader(fs)
  Dim line As String = strmReader.ReadLine() ' erste Zeile lesen
  Dim start As Integer = 0
  Do While line <> Nothing
    ...
Jetzt kannst Du im Form_Load Event die LoadData-Prozedur mit der gewünschten Datei aufrufen.
In Deinem Button3_Click Event ebenfalls diese Prozedur aufrufen, um doppelten Code zu vermeiden.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Daten einer Listview beim Start vorhanden 
Autor: Anton_S
Datum: 08.09.08 10:14

Danke für deine Antwort,

ist mir aber leider zu hoch. Ich als Wald und Wiesenprogrammierer.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel