Buttons mit Links hinterlegen aus XMLFile

  • VB.NET

Es gibt 51 Antworten in diesem Thema. Der letzte Beitrag () ist von Snaptu.

    Mein Wissensstand hört kurz nach "Hello World" MSGbox auf. Wie soll ich da deine Fragen beantworten und deine Begriffe verstehen? Würde ich Google nicht seit Tagen durchsuchen und dort nichts finden, dann bräuchte ich hier nicht fragen. Wozu soll das Forum denn sonst da sein, wenn nicht zum Fragen?
    schreib einfach mal DeinButton. und siehe da es Das Studio schlägt dir Dinge wie DeinButton.Height und DeinButton.Width vor. So und jetzt such dir aus was du benötigst.
    Wenn dein Wissen nach "Hello World" schon endet dann fehlt dir weit mehr wissen als den Text eines Button's zur Laufzeit zu ändern.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

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

    Nehmt es mir nicht übel, aber wenn nicht so eine Antwort wie von Rod kommt, dann bringt es mich nicht weiter. Was ich machen will, habe ich mehrfach beschrieben. Ich brauche eine Lösung wie:

    eine Form, einen Button einfügen, diesen Code in die Form, diesen in die XML Datei und fertig. Den text kann ich dann über die XML steuern. Dann kann ich mir das für andere Objekte selber zusammen reimen.
    Du hast hier schon alles nötige Wissen, den Rest musst du dir nur

    Doener schrieb:

    zusammen reimen.


    Du weißt, wie du die Beschriftung von Button veränderst. Du weißt, wie du die Links aufrufst. Du weißt, wie du die Links aus der XML rausholst. Rod hat dir alles schon vorgeturnt. Den Rest musst du nur kombinieren.
    Das Problem ist du liest NICHT. Die Lösung steht mehrfach schon hier drin. DU hast deinen Text ja schon aus der XML in zerlegter Form soweit ich das sehen kann.
    So und jetzt Änderst du die Text - Eigenschaft des Buttons in den Text den du aus der XML Datei hast. Ein ToolstripmenuItem hat komischerweise eine .Text Eigenschaft.
    Wie wird diese bei einem Button dann heißen?

    Dir gefällt RoD nur weil er dir eine Codezeile hingeklatscht hat die du blind in deinen Code kopieren kannst ohne zu lernen....
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    Der Code von mir funktioniert aber leider nicht. Und ich weiß daher nicht, wo der Fehler liegt, daher kann ich eure Tipps nicht testen oder ausprobieren. Es bringt mir im Moment nichts wo ein.TextEigeschaft dran zu hängen,weil es davor schon klemmt


    Quellcode

    1. Imports System.Xml
    2. Public Class Form1
    3. Private Function GetMenus() As XmlDocument
    4. Dim xxml As XmlDocument = New XmlDocument()
    5. xxml.Load("test.xml")
    6. Return xxml
    7. End Function
    8. Public Class DynamicMenuSubs
    9. Public Sub Menu1A()
    10. Debug.Print("Called Menu1A")
    11. End Sub
    12. Public Sub Menu1B()
    13. Debug.Print("Called Menu1B")
    14. End Sub
    15. Public Sub Menu1C()
    16. Debug.Print("Called Menu1C")
    17. End Sub
    18. Public Sub Menu2()
    19. Debug.Print("Called Menu2")
    20. End Sub
    21. Public Sub Menu3A()
    22. Debug.Print("Called Menu3A")
    23. End Sub
    24. Public Sub Menu3B()
    25. Debug.Print("Called Menu3B")
    26. End Sub
    27. End Class
    28. Private Sub BuildMenus()
    29. Dim xxml As XmlDocument = GetMenus()
    30. Dim toplevels As XmlNodeList = xxml.SelectNodes("Menus/TopLevel")
    31. Dim node As XmlNode
    32. For Each node In toplevels
    33. Dim tsmi As New ToolStripMenuItem
    34. tsmi.Text = node.Attributes("text").Value
    35. Dim sublevels As XmlNodeList = node.SelectNodes("NextLevel")
    36. If sublevels.Count = 0 Then
    37. tsmi.Tag = node.InnerText
    38. AddHandler tsmi.Click, AddressOf DynamicMenuHandler
    39. Else
    40. Dim subnode As XmlNode
    41. For Each subnode In sublevels
    42. Dim ddi As New ToolStripMenuItem
    43. ddi.Text = subnode.Attributes("text").Value
    44. ddi.Tag = subnode.InnerText
    45. AddHandler ddi.Click, AddressOf DynamicMenuHandler
    46. tsmi.DropDownItems.Add(ddi)
    47. Next
    48. End If
    49. MenuStrip1.Items.Add(tsmi)
    50. Next
    51. End Sub
    52. Private Sub DynamicMenuHandler(ByVal sender As System.Object, ByVal e As System.EventArgs)
    53. Dim s1 As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
    54. If s1.Tag.ToString.Length > 0 Then
    55. Dim SubType As System.Type = GetType(DynamicMenuSubs)
    56. Dim SubInfo As System.Reflection.MethodInfo = SubType.GetMethod(s1.Tag.ToString())
    57. Dim SubController As New DynamicMenuSubs
    58. SubInfo.Invoke(SubController, Nothing)
    59. End If
    60. End Sub
    61. End Class


    Die Eingenschaft .Text! Also btn.Text .... nicht btn.TextEigenschaft
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Was generell interessant wäre:
    - existieren die Buttons bereits im Designer oder werden diese im Code generiert?

    Falls dieser bereits im Designer hinzugefügt wurde brauchst du nur den Wert aus dem XML-File (was ich mitbekommen habe lest du diesen ja bereits aus) der Text-Eigenschaft deines Buttons hinzufügen. Um dann anschließend mit dem Button was zu machen (in deinem Fall einen Link zu öffnen) hast du bereits das richtige Event oben gefunden (das Click Event wird dir standardmässig generiert wenn du den Button doppelklickst).

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Ich fasse mal zusammen:

    Der Code von Rod geht, aber nur bei Verwendung von einer TXT Datei. Mir ist es sogar gelungen, dies für jedes Element zu übernehmen, also Button, menü etc.
    Ich möchte das ganze nun in Form von XML machen - da kann ich mir nicht so recht den Übergang von der TXT zu XML herleiten
    Mein gesposteter Code klemmt nirgends - das ist ja mein Problem. VB zeigt keinen Fehler an und startet das Programm - aber der Button bleibt ohne Text
    1. hast du durch dein wildes zusammenkopieren jetzt 121 Zeilen Müll angesammelt und weißt nicht mehr was dein Code eigentlich macht.
    2. geht dein Vorhaben eigentlich weit kürzer
    3. mehrere Teilaufgaben = XML einlesen und notwendige Texte rausfiltern, Beim Laden (form_load) der Anwendung die Button's mit dem Text der XML ausstatten, Beim klick eines Buttons eine Webseite öffnen
    4. ich an deiner Stelle würde neu Anfangen oder gleich mal so das ich mich Informiere über : Klassen, Events, Variablen, Funktionen, usw,..... Grundlagen eben.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    Ja, das stimmt. Ich habe viel kopiert, bin auch kein Programmierer. Leider ist das "Programm" insgesamt schon über 1 MB an Code groß, so das ich nicht neu anfangen kann - nur weil ich eine neue Anforderung neu hinzugekommen ist. Wenn mein Vorhaben auch viel einfacher geht, dann bitte ich darum, es mir zu zeigen wie.

    mehrere Teilaufgaben = XML einlesen und notwendige Texte rausfiltern, Beim Laden (form_load) der Anwendung die Button's mit dem Text der XML ausstatten, Beim klick eines Buttons eine Webseite öffnen

    genau das möchte ich