Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

VB. NET 2010 VSE - ListBox zeigt nichts an

Diskussion: VB. NET 2010 VSE - ListBox zeigt nichts an im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Moinsen, Umgebung: Visual Studio Express 2010 (-->sollte das der Grund sein, ich habe auch noch ne Ultimate Lizenz und ...

Like Tree2Likes
  • 2 Post By GrafZahl

Antwort
Alt 23.08.11, 00:28   #1 (permalink)
Member of Honour
 
Benutzerbild von Brabax
 
Registriert seit: 04.10.01
Brabax Leistung: 8086Brabax Leistung: 8086
Brabax eine Nachricht über ICQ schicken
Likes: 42
Standard VB. NET 2010 VSE - ListBox zeigt nichts an

Anzeige

Moinsen,

Umgebung:
Visual Studio Express 2010 (-->sollte das der Grund sein, ich habe auch noch ne Ultimate Lizenz und würde dies auch damit testen)
VB .NET 2010

folgendes Problem:

Ich habe eine ListBox erstellt und die View auf Details eingestellt.

Im Designer bekomme ich die ListBox korrekt angezeigt.
Sobald ich allerdings das Programm ausführe, verschwinden die ColumnHeaders.
Ganz egal, ob ich Items (via Code oder im Designer) einfüge oder nicht.

Wenn ich die ListBox via Code fülle (und zuvor im Designer keine Colums eintrage), dann wird leider ebenfalls nichts angezeigt.

Kennt jemand dieses Problem und weisz Abhilfe?

Alternative: Welche Varianten gäbe es noch, Dateien eines Ordners in einer vergleichbaren Übersicht darzustellen?

Im Anhang sind 2 Bilder die noch Mal zeigen, was ich meine.

Hier der Code:

ListBox mit Columns füllen:

Code:
        'FileList einstellen
        list_files.Clear()
        list_files.View = View.Details

        With list_files.Columns
            .Add("Name")
            .Add("Dateigröße")
            .Add("Typ")
            .Add("Änderungsdatum")
        End With
ListBox mit Items füllen
Code:
            Dim fileInfo As System.IO.FileInfo

            For Each fileInfo In currentFiles '-->Array mit Files
                With list_files.Items '--> list_files ist die ListView
                    With .Add(fileInfo.Name)
                        .ImageIndex = 1
                        .SubItems.Add(fileInfo.Length)
                        .SubItems.Add(fileInfo.Extension)
                        .SubItems.Add(fileInfo.LastWriteTime)
                    End With
                End With
            Next (fileInfo)

        list_files.Refresh()
Danke schon Mal

lG
Angehängte Grafiken
Dateityp: png vb001.png (3,6 KB, 7x aufgerufen)
Dateityp: png vb002.png (1,2 KB, 6x aufgerufen)
__________________

<< Wir leben bereits im morgigen Gestern, doch vom gestrigen Morgen sind wir noch weit entfernt. >>

<< Träume sind Schäume. Es liegt an dir ob du sie lebst oder ein Schaumschläger bist! >>

<< Erst wenn man beginnt zu implizieren, wird man merken, dass einem sowieso keiner richtig zuhört. >>
Brabax ist offline   Mit Zitat antworten
Alt 23.08.11, 03:22   #2 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

ich nehme mal an statt einer ListBox verwendest du ein System.Windows.Forms.ListView ...

hast du mal versucht im debugger zu sehen ab wann die columns auflistung keine spalten mehr enthält?

schau dir auch mal alle calls zu list_files.Clear() an, falls es abgesehen von dem call in deinem ersten code block weitere gibt, und schau nach ob du nicht list_files.Items.Clear() meintest ...

als alternative würde ich dir das DataGridView nennen ... es unterstützt datenbindung, was dir das erzeugen der einträge erspart...

ich kann dir gerne ein beispiel in c# liefern ... bei vb überkommt mich die diffuse, subjektive (aber objektiv unbegründete) vermutung meine letzte mahlzeit könnte mir nochmal durch den kopf gehen ...
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 23.08.11, 11:35   #3 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von Brabax
 
Registriert seit: 04.10.01
Brabax Leistung: 8086Brabax Leistung: 8086
Brabax eine Nachricht über ICQ schicken
Likes: 42
Standard

Hi

Ja, ich meine ListView (...dat heisst doch allet irgendwie gleich )

Es gibt keine clears ausser dem einen (initialen) clear vor dem Befüllen und ganz am Anfang (und wenn dann sollten doch nur die Items verschwinden, nicht aber die ColumnHeaders, oder?). --> ich schau aber noch Mal

Das ListView-Element enthält von vornherein keine Columns mehr (testweise gestartet ohne, dass ich irgendwas mache, einfach im Designer ein neues erstellt und via Designer mit Daten gefüllt (Columns, Items, SubItems) -> keine ColumnHeader, kein Inhalt in der Detailansicht).

Ich schau mir DataGridView nachher mal an.

Beispielcode habe ich mir gestern bereits tausend und ein Mal angesehen, bis hin zum kompletten Kopieren von ode um auszuschließen, dass ich völlig zu doof bin
Aber Danke für das Angebot.

werde es nachher auch noch mal mit einem neuen WindowsForm testen ... vllt. gibt es ja Zeich(n)en-konflikte wegen eines anderen Elementes.

Danke erst Mal.

lG
__________________

<< Wir leben bereits im morgigen Gestern, doch vom gestrigen Morgen sind wir noch weit entfernt. >>

<< Träume sind Schäume. Es liegt an dir ob du sie lebst oder ein Schaumschläger bist! >>

<< Erst wenn man beginnt zu implizieren, wird man merken, dass einem sowieso keiner richtig zuhört. >>

Geändert von Brabax (23.08.11 um 11:38 Uhr)
Brabax ist offline   Mit Zitat antworten
Alt 23.08.11, 12:48   #4 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

list_files.Clear() löscht sowohl items als auch columns

list_files.Items.Clear() löscht alle items

list_files.Columns.Clear() löscht alle columns
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 23.08.11, 13:43   #5 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von Brabax
 
Registriert seit: 04.10.01
Brabax Leistung: 8086Brabax Leistung: 8086
Brabax eine Nachricht über ICQ schicken
Likes: 42
Standard

Shit ... das könnte es sein.
__________________

<< Wir leben bereits im morgigen Gestern, doch vom gestrigen Morgen sind wir noch weit entfernt. >>

<< Träume sind Schäume. Es liegt an dir ob du sie lebst oder ein Schaumschläger bist! >>

<< Erst wenn man beginnt zu implizieren, wird man merken, dass einem sowieso keiner richtig zuhört. >>
Brabax ist offline   Mit Zitat antworten
Alt 23.08.11, 15:52   #6 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

ich würde aber, auch wenn das listview nun funktioniert zu datenbindung und entwurfsmustern wie M-V-VM raten ... produziert wartungsfreundlichere ergebnisse und macht einem allgemein das leben leichter ...
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 23.08.11, 18:13   #7 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von Brabax
 
Registriert seit: 04.10.01
Brabax Leistung: 8086Brabax Leistung: 8086
Brabax eine Nachricht über ICQ schicken
Likes: 42
Standard

Hi!

Es war das clear().
Ärgerlicher und doofer Fehler

Kannst du mir das mit den Entwurfsmustern näher erläutern bzw. Links dazu geben?

Danke

lG
__________________

<< Wir leben bereits im morgigen Gestern, doch vom gestrigen Morgen sind wir noch weit entfernt. >>

<< Träume sind Schäume. Es liegt an dir ob du sie lebst oder ein Schaumschläger bist! >>

<< Erst wenn man beginnt zu implizieren, wird man merken, dass einem sowieso keiner richtig zuhört. >>
Brabax ist offline   Mit Zitat antworten
Alt 23.08.11, 19:36   #8 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

google wird dir zu MVVM oder M-V-VM einiges zu diesem speziellen sagen ...

kurz umrissen:

Model-View-ViewModel gilt quasi als nachfolger des Model-View-Controler musters ...

beide sollen dein datenmodell unabhänig von der anzeige machen

Model ist dein datenmodell also hier eine objektrepresentation deiner dateien/verzeichnisse ... ggf noch mit zusätzlichen objekten für kontext-abhänige sachverhalte

View ist die graphische oberfläche, oder das was der endbenutzer zu sehen bekommt ...

ViewModel ist die ebene die beide miteinander verbindet:

auf deiner oberfläche werden dinge abgebildet, die direkt auf eigenschaften der objekte deines modells zurückführbar sind (dateiname, größe, etc) ... allerdings gibt es auch dinge die in der oberfläche wichtig sind, die nichts mit deinem modell zu tun haben (beispielsweise welche tabellenzeilen markiert sind, oder welche elemente einer baumdarstellung gerade aufgeklappt sind)
dennoch gehören beide kategorien irgendwie zusammen ... (wenn eine tabellenzeile markiert ist, ist in der regel auch interessant welches objekt sie representiert)

daher würden diese dinge im viewmodell zusammengefasst: dein viewmodell hällt eine referenz auf ein oder mehr objekte aus der modell ebene, und leitet dessen eigenschaften (oder aggregate) die aus dem jeweiligen blickwinkel wichtig sind als seine eigenen eigenschaften weiter ... zudem hält es alle eigenschaften die nicht direkt vom modell abgeleitet werden (auswahl, ausgeklappt)

für verschiedene sichten auf dein datenmodell gibt es verschiedene viewmodelle ...

die so zusammengeführten eigenschaften aus beiden welten liegen nun abrufbereit in logischem zusammenhang der jeweiligen sicht in x objekten einer viewmodell-klasse ... per datenbindung wird die dann für gewöhnlich an das jeweilige view gebunden ... auswählen oder aus/einklappen von objekten ist damit im programmablauf möglich ... ohne dass dein programmablauf kenntnis des views also der oberfläche haben muss ...

auf die tour kannst du anschließend auch bei änderungen der oberfläche den änderungsaufwand im code in grenzen halten ...

die devise heißt "abhänigkeiten reduzieren" ...


entwurfsmuster sind kein allheilmittel, und speziell unerfahrenen leuten machen sie mitunter recht schnell kopfweh, aber im großen und ganzen kann man sich mit sowas viel arbeit sparen ...
Brabax and Tarantoga like this.
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 24.08.11, 07:39   #9 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von Brabax
 
Registriert seit: 04.10.01
Brabax Leistung: 8086Brabax Leistung: 8086
Brabax eine Nachricht über ICQ schicken
Likes: 42
Standard

Hi!

Okay, davon habe ich bereits gehört. Ich konnte allerdings die Begrifflichkeiten nicht zuordnen.

Im Moment ist das ganze Spielerei um ein nebenbei ein wenig mehr Erfahrungen im Programmieren im .NET zu lernen (als FiSi wird man von der Programmierung ja gerne abgekaspelt).

Aber sobald ich hierbei gefühlt so weit bin, werde ich das Thema näher erforschen, Danke für den Hinweis.

lG
__________________

<< Wir leben bereits im morgigen Gestern, doch vom gestrigen Morgen sind wir noch weit entfernt. >>

<< Träume sind Schäume. Es liegt an dir ob du sie lebst oder ein Schaumschläger bist! >>

<< Erst wenn man beginnt zu implizieren, wird man merken, dass einem sowieso keiner richtig zuhört. >>
Brabax ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » VB. NET 2010 VSE - ListBox zeigt nichts an
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61