vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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
Während der Laufzeit Labels erstellen - Fehler im code? 
Autor: arnesson
Datum: 14.12.10 08:48

Hallo zusammen,

Vorweg: ich habe bisher nur VBA in Excel und Access programmiert. Nun habe ich mir VB Express 2010 runtergeladen und komme mit den uterschieden nicht so ganz zurecht.

Folgene Situation:
Ich möchte eine Application schreiben, bei der man einen Ordener Auswählt und die Unterordner (in meinem Fall Filme) einließt. Bis hierher funktioniert es.
Während er in der Do-Schleife jeden einzelnen Ordner findet, soll zu jedem Ordnernamen (entspricht Filmnamen) ein Label in ein Panel eingefügt werden (soll später das Titelbild welches jew. in den Ordnern liegt enthalten)

Leider erstellt der code jedoch nur EIN Label. Ich bin es schrittweise durchgegangen. Im ersten durchgang ist es bei der ersten position (verändert sich bei jedem durchlauf). Läuft der code komplet duch, ist genau ein Label im Panel mit den zuletzt gefundenen Ordner als Text. Ich vermute eigendlich, das er den vorgegebenen Namen der labels nicht ändert und es nur immer verschiebt.
Kann aber eig. nicht sein, da beim 2 durchlauf 2 labels (jedoch ohne beschriftung) im Panel sind. In VBA ging das iwie einfacher.

HILFE!

Der Code liegt in einer Form. Die Form hast einen Button (Name = "Cmd_SourceOeffnen", ein Panel (Name="Pnl_Filme") und eine Listbox (Name = "Lst_Filmliste") zur kontrolle (Hier werden alle Ordnernamen aufgeführt (funktioniert)

Code:
Public Class Form1
 
    Private Sub Cmd_SourceOeffnen_Click(ByVal sender As System.Object, ByVal e _
      As System.EventArgs) Handles Cmd_SourceOeffnen.Click
        Dim MainFolder As String
 
        MainFolder = ""
 
        If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
            MainFolder = (FolderBrowserDialog1.SelectedPath) & "\"
        End If
 
        Call Filmliste(MainFolder, "*")
    End Sub
 
    Dim NewLbl As New Label 'Label = New Label()
    Private Sub Filmliste(ByVal MainFolder As String, ByVal Filter As String)
        Dim Name1 As String
        Dim LblCounter As Long
        Dim NewLbl As Label = New Label()
        LblCounter = 0
 
        Name1 = Dir(MainFolder, vbDirectory)    ' Ersten Eintrag abrufen.
        Do While Name1 <> ""    ' Schleife beginnen.
            ' Aktuelles und übergeordnetes Verzeichnis ignorieren.
            If Name1 <> "." And Name1 <> ".." Then
                ' Mit bit-weisem Vergleich sicherstellen, daß Name1 ein
                ' Verzeichnis ist.
                If (GetAttr(MainFolder & Name1) And vbDirectory) = vbDirectory _
                  Then
                    If Name1 Like Filter & "*" Then
                        LblCounter = LblCounter + 1
                        With NewLbl
                            .Name = "Lbl_Bild_" & LblCounter
                            .Text = Name1
                            .Size = New Size(50, 16)
                            .Location = New Point(LblCounter * 60, 32)
                            .BorderStyle = BorderStyle.FixedSingle
                        End With
                        Pnl_Filme.Controls.Add(NewLbl)
                        Lst_Filmliste.Items.Add(Name1)    ' Eintrag nur 
                        ' anzeigen, wenn es sich
 
 
                    End If    ' um ein Verzeichnis handelt.
                End If
            End If
            Name1 = Dir()    ' Nächsten Eintrag abrufen.
        Loop
 
        Lst_Filmliste.Sorted = True
    End Sub
End Class
PS: Ist VB Express von der Sprache anders? Normaler weise schreibe ich sowas wie
 
    Dim LBL As Control
    For Col = 1 To 10
        Me.Controls.Add "Forms.Label.1", "Lbl_" & Col
        Set LBL = Me.Controls("Lbl_" & Col)
 
        LBL.Caption = "Test"
        LBL.Height = 12
        LBL.Width = 50
        LBL.Left = 10
        LBL.Top = 10
        LBL.BackColor = RGB(R, G, B)
        LBL.BorderStyle = 1
        LBL.TextAlign = 2
    Next Col
Aber das klappt in VB Express wohl nicht.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Während der Laufzeit Labels erstellen - Fehler im code?2.042arnesson14.12.10 08:48
Re: Während der Laufzeit Labels erstellen - Fehler im code?782ModeratorDaveS14.12.10 10:51
Re: Während der Laufzeit Labels erstellen - Fehler im code?762arnesson14.12.10 12:27
Re: Während der Laufzeit Labels erstellen - Fehler im code?766ModeratorDaveS14.12.10 12:43

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