vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Collection leeren und neu füllen 
Autor: tyfoo
Datum: 23.07.07 22:25

Hi!
Ich habe mir einen Pictureviewer programmiert, nun sammelt dieser in seinem StartupFolder die Bilddateien, sortiert sie alphabetisch und zeigt sie der Reihenfolge nach an. Nun möchte ich, dass beim Druck auf Enter ein kleines Fenster zur Ordnerauswahl erscheint. Wenn ein Ordner gewählt wurde, soll die COllection 'files' geleert werden und halt meine Form_Load-Prozedur mit dem Inhalt dieses Ordners wiederholt werden. Ich hoffe, ich habe mich verständlich ausgedrückt.

Hier ist mein Code:
Imports System.IO
Imports System.Collections.Generic
Imports System.Drawing
 
Public Class Form1
    Declare Function ShowCursor Lib "user32" (ByVal bShow As Boolean) As Long
    Dim CursorHidden As Boolean
    Dim files As New List(Of FileInfo)
    Dim ActIndex As Integer
 
    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        If CursorHidden Then ShowCursor(True)
    End Sub
 
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If e.CloseReason = CloseReason.ApplicationExitCall Then Exit Sub
        If MessageBox.Show("Beenden?", "[TYFOO]:.", MessageBoxButtons.YesNo, _
          MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) = _
          Windows.Forms.DialogResult.No Then
            e.Cancel = True
        End If
    End Sub
 
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.Right
                ActIndex += 1
                If ActIndex >= files.Count Then ActIndex = 0
                ShowAct()
            Case Keys.Left
                ActIndex -= 1
                If ActIndex < 0 Then ActIndex = files.Count - 1
                ShowAct()
            Case Keys.Escape
                Me.Close()
        End Select
    End Sub
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
      Handles Me.Load
        pic.Top = 0
        pic.Left = 0
        pic.Height = Me.ClientRectangle.Height
        pic.Width = Me.ClientRectangle.Width
        Dim Folder As New DirectoryInfo(Application.StartupPath)
        files.AddRange(Folder.GetFiles("*.jpg"))
        files.AddRange(Folder.GetFiles("*.png"))
        files.AddRange(Folder.GetFiles("*.gif"))
        files.AddRange(Folder.GetFiles("*.bmp"))
        files.Sort(New FileComparer)
        If files.Count = 0 Then
            MsgBox("Es wurden keine Bilddateien gefunden!", "Fehler", _
              MessageBoxIcon.Error)
            Application.Exit()
        End If
        ShowAct()
 
    End Sub
    Public Sub ShowAct()
        pic.Image = Image.FromFile(files(ActIndex).FullName)
    End Sub
 
    Private Sub bt_close_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles bt_close.Paint
        bt_close.BackColor = Color.Transparent
        bt_close.Parent = pic
    End Sub
 
    Private Sub bt_next_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles bt_next.Paint
        bt_next.BackColor = Color.Transparent
        bt_next.Parent = pic
    End Sub
 
    Private Sub bt_prev_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles bt_prev.Paint
        bt_prev.BackColor = Color.Transparent
        bt_prev.Parent = pic
    End Sub
 
    Private Sub bt_close_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles bt_close.Click
        Me.Close()
    End Sub
 
    Private Sub bt_next_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles bt_next.Click
        ActIndex += 1
        If ActIndex >= files.Count Then ActIndex = 0
        ShowAct()
    End Sub
 
    Private Sub bt_prev_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles bt_prev.Click
        ActIndex -= 1
        If ActIndex < 0 Then ActIndex = files.Count - 1
        ShowAct()
    End Sub
 
End Class
 
Public Class FileComparer
    Implements IComparer(Of FileInfo)
    Public Function Compare(ByVal x As System.IO.FileInfo, ByVal y As _
      System.IO.FileInfo) As Integer Implements _
      System.Collections.Generic.IComparer(Of System.IO.FileInfo).Compare
        Return x.Name < y.Name
    End Function
 
End Class
Gruß, Stefan

[TYFOO]:.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Collection leeren und neu füllen1.090tyfoo23.07.07 22:25
Re: Collection leeren und neu füllen631Moderatorralf_oop23.07.07 22:39
Re: Collection leeren und neu füllen644tyfoo23.07.07 22:46
Re: Collection leeren und neu füllen691Christian2524.07.07 20:58

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-2025 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