Resource und Treeview .Net4.5 VS2012

  • VB.NET
  • .NET 4.5

Es gibt 55 Antworten in diesem Thema. Der letzte Beitrag () ist von Amelie.

    Amelie schrieb:

    von der Optik her würde ich lieber RadioButten verwenden.
    Eine Combobox ist Databinding-Fähig - wie du siehst kann man damit das Thema in 1 Zeile abhandeln.
    Eine Gruppe Option-Button erfordert deutlich mehr Aufwand, und Änderungen sind ebenfalls aufwändiger.
    Da das nur optischer Gimmick ist, würde ich das auf später verlegen, wenn die Anwendung ansonsten Funktional korrekt läuft.
    Danke ;)

    Ich habe nun dafür eine Lösung gefunden die, für meine Zwecke beides beinhaltet.
    Vielleicht nicht aus OOP Sicht die beste aber es klappt.

    Für die Auswahl der Datentypen benutze ich nun ebenfalls ein Treeview.

    Jetzt Suche ich mal nach dem Artikel für das USB Problem.
    Guten Morgen
    Ich benötige nochmals Hilfe.

    Fehlermeldung: Option Strict On lässt keine implizierten Konvertirungen von Object in String zu

    VB.NET-Quellcode

    1. Dim Baumnodes() As String = {"txt", "dat", "doc"}
    2. Dim Baumicos() As String = {"pc", "exit", "zipp1"}
    3. For I = 0 To Baumnodes.GetUpperBound(0)
    4. For Y = 0 To Baumicos.GetUpperBound(0)
    5. tr_view1.Nodes.Add(Baumnodes(I))
    6. Dim Node = tr_view1.Nodes.Add(tr_view1.Name(I))
    7. Node.Tag = tr_view1.Name
    8. Node.ImageKey = My.Resources.ResourceManager.GetObject(Baumicos(Y)) [color=#008000]' <==Fehler[/color]
    9. Next
    10. Next
    Der Code macht was anderes als Du denkst.
    Node.ImageKey ist ein String. An dieser Stelle setzt man den Namen der Datei, die angezeigt werden soll, wenn der Knoten nicht ausgewählt ist. Woher weiß das TreeView, welche Namen es gibt? Dazu muss man dem TreeView eine ImageList mitgeben (aus der ToolBox auf's Form ziehen und dann bei der TreeView-Eigenschaft ImageList diese neue ImageList einstellen). Und dieser ImageList kann man Bilder hinzufügen. Und dann sind die Namen klar, die man eben bei Node.ImageKey hinterlegen kann.
    Also: ImageList hinzufügen, mit dem TreeView verbinden, Bilder von den Ressoucren in die ImageList rein und dann könntest Du ImageKey festlegen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Meinst du hier?

    VB.NET-Quellcode

    1. Dim Baumicos() As String =
    ??

    Da habe ich es schon mit all möglichen versucht... ;(
    Ebenso habe ich schon versucht das über

    Quellcode

    1. ImageList
    zu machen..

    VB.NET-Quellcode

    1. ​Node.ImageKey = ImageList1.Baumicos(Y) '...My.Resources.ResourceManager.GetObject(Baumicos(Y))

    brachte auch nichts.
    Die Icons sind aber vorhanden!
    @Amelie Weise dem TreeView die ImageList zu
    und
    weise danach dem TreeNode den ImageIndex in dieser Liste zu.
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    weise danach dem TreeNode den ImageIndex in dieser Liste zu.


    Das habe ich versucht. Habe auch im Designer dem Treeview die Imageliste zugewiesen
    Fehler: Der Wert vom Type "1-dimesioales Array kann nicht in String konvertiert werden..

    VB.NET-Quellcode

    1. tr_view1.ImageList = ImageList1
    2. Dim Baumnodes() As String = {"txt", "dat", "doc"}
    3. Dim Baumicos() As String = {"pc.ico", "exit.ico", "zipp1.ico"}
    4. Dim Icos As New TreeNode(Baumicos) [color=#006400]'<=== Fehler[/color]
    5. For I = 0 To Baumnodes.GetUpperBound(0)
    6. For Y = 0 To Baumicos.GetUpperBound(0)
    7. tr_view1.Nodes.Add(Baumnodes(I))
    8. Dim Node = tr_view1.Nodes.Add(tr_view1.Name(I))
    9. Node.Tag = tr_view1.Name
    10. Icos.ImageKey = Baumicos [color=#006400]'<=0 Fehler[/color]
    11. tr_view1.Nodes.Add(Icos)
    12. Next
    13. Next

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Amelie“ ()

    in diese Richtung

    VB.NET-Quellcode

    1. Dim Baumnodes() As String = {"txt", "dat", "doc"}
    2. Dim Baumicos() As String = {"pc", "exit", "zipp1"}
    3. For I = 0 To Baumnodes.GetUpperBound(0)
    4. For Y = 0 To Baumicos.GetUpperBound(0)
    5. tr_view1.Nodes.Add(Baumnodes(I))
    6. Dim Node = tr_view1.Nodes.Add(tr_view1.Name(I))
    7. Node.Tag = tr_view1.Name
    8. Node.ImageKey = Baumicos(Y)
    9. Next
    10. Next
    Das funzt nur, wenn dem Treeview im FormDesigner eine Imagelist zugewiesen wurde, die auch Images mit den ImageKeys "pc", "exit", "zipp1" enthält.

    ErfinderDesRades schrieb:

    Das funzt nur, wenn dem Treeview im FormDesigner eine Imagelist zugewiesen wurde,


    Eine Liste mit den Bilder habe ich natürlich zugewiesen.
    Jetzt habe ich ein sehr seltsames aussehen.. Ohne Bilder war der Baum richtig und nun... uuuupss ?(
    Bilder
    • tree.jpg

      18,96 kB, 203×406, 10 mal angesehen
    jedenfalls klappt das nun mit die bilder.
    Anne bilder liegts nicht, sondern da ist was anneres verschlimmbessert. Ich nahm einfach nur von dir geposteten Code (glaub #23), und hab die Bilder drangemacht, wie's unter berücksichtigung der Datentypen kompilieren könnte.

    Mach den Baum wieder richtig, wies vorher war, und mach die Bilder dann richtig hin.

    Amelie schrieb:

    Ohne Bilder war der Baum richtig und nun...
    Dann nimm testweise die Bilder wieder raus.
    Für mich sieht das Bild in Ordnung aus, bei mir sieht das auch so aus (mit meinen Bildern und Texten natürlich).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So ist der Baum richtig und es wird Bil (0) aus der ImageList vor jedem Eintrag gesetzt...

    VB.NET-Quellcode

    1. Dim Baumnodes() As String = {"txt", "dat", "doc"}
    2. For I = 0 To Baumnodes.GetUpperBound(0)
    3. tr_view1.Nodes.Add(Baumnodes(I))
    4. Next

    Amelie schrieb:

    warum ist das so schwer im Code zu machen?
    :thumbsup: [/quote]Bei mir sieht das so aus.
    Dynamische ImageList (Bilder werden beim Erstellen zugewiesen), die Indizes werden dem Node unmittelbar zugewiesen:

    C#-Quellcode

    1. // 2 Icons vorhanden, die neuen werden hinten dran gehängt
    2. int index = this.ImageListTools.Images.Count;
    3. this.ImageListTools.Images.Add(img);
    4. this.ImageListTools.Images.Add(img2);
    5. node.ImageIndex = index;
    6. node.SelectedImageIndex = index + 1;
    Das Ganze sieht dann so aus:

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Amelie schrieb:

    Genau das mit dem " zuweisen " klappt ja nicht.
    wie - klappt nicht?
    der code von post#30 klappt doch!
    Zumindest was das zuweisen von ImageKeys angeht.

    In post#34 zeigst du wiederum Code, wo keinerlei ImageKeys zugewiesen werden, und wo's auch nix gibt, was man zuweisen könnte.
    was soll man sagen?

    Aber ich werde des erklärens, nachfragen, was du meinst, und hinweisen, wo's bereits steht, müde. Ich klatsch ma iwas hin, vlt. gefällts, und wenn ja, vlt. interessierts sogar:

    VB.NET-Quellcode

    1. Dim Baumnodes() As String = {"txt", "dat", "doc"}
    2. Dim Baumicos() As String = {"pc", "exit", "zipp1"}
    3. For I = 0 To Baumnodes.GetUpperBound(0)
    4. Dim ndFileTyp = tr_view1.Nodes.Add(Baumnodes(I))
    5. For Y = 0 To Baumicos.GetUpperBound(0)
    6. Dim Node = ndFileTyp.Nodes.Add(tr_view1.Name(I))
    7. Node.ImageKey = Baumicos(Y)
    8. Next
    9. Next

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()