den richtigen Button finden

  • VB.NET

Es gibt 63 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Schau.

    VB.NET-Quellcode

    1. Private Sub b_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
    2. Dim geklickterButton As Button = DirectCast(sender, Button)
    3. geklickterButton.BackColor = Color.Red
    4. End Sub


    Wenn Du mit AddHandler einen Verweis auf eine Sub setzt, dann ist "sender" der geklickte Button.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Hat wohl wenig Sinn. Zum einen ist es inzwischen ziemlich viel und zum Anderen braucht man dazu ein anderes Programm das ich mit dem meinen "fernsteuern" will. Vielleicht bringt es etwas wenn ich nocheinmal die gesamte Routine anzeige mit der ich die Buttons erstelle:

    VB.NET-Quellcode

    1. Private Sub BesetztmelderEinlesen()
    2. AlleBesetztmelder = 0
    3. Dim readText() As String = File.ReadAllLines(AktDir & "FSTContainer\Besetztmelder.dat")
    4. Dim Eingelesen As String
    5. Dim EbeneTemp As Integer, MelderTemp As Integer
    6. For Each Eingelesen In readText
    7. AlleBesetztmelder += 1
    8. Liste = Split(Eingelesen, "|")
    9. EbeneTemp = CInt(Liste(4))
    10. Liste = Split(Eingelesen, "|")
    11. MelderTemp = CInt(Liste(5))
    12. myButton = New Button
    13. With myButton
    14. BesetztMelder(EbeneTemp, MelderTemp) = Eingelesen
    15. .Text = ""
    16. .Name = Liste(3)
    17. .Width = SymbX
    18. .Height = SymbY
    19. .Left = Liste(1) - SymbX / 2
    20. .Top = Liste(2) - SymbY / 2
    21. .AutoSize = False
    22. .BackgroundImage = My.Resources.bes0
    23. .BackgroundImageLayout = ImageLayout.Zoom
    24. .ContextMenuStrip = conBut : .Cursor = Cursors.Hand
    25. AddHandler myButton.MouseDown, AddressOf myButton_MouseDown
    26. ' Hier wird der Button erzeugt ------------------------------------------------------------------
    27. Me.Controls.Add(myButton)
    28. myButton.BringToFront()
    29. End With
    30. Next
    31. SymboleNeuZeichen()
    32. End Sub

    SpaceyX schrieb:

    Schau.
    lieber weg.
    @web933: So identifizierst Du die MouseButtons:

    VB.NET-Quellcode

    1. Private Sub Form1_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
    2. Select Case e.Button
    3. Case Windows.Forms.MouseButtons.Left
    4. Label1.Text = "Left"
    5. Case Windows.Forms.MouseButtons.Middle
    6. Label1.Text = "Middle"
    7. Case Windows.Forms.MouseButtons.Right
    8. Label1.Text = "Right"
    9. End Select
    10. End Sub
    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!
    Sorry, mein Fehler. Hab nicht gesehen, dass sich die Farbe ändert da der komplette Button nur ein Bild zeigt. Nachdem ich das Bild abgeschaltet hatte sah ich die Änderung. Jetzt muss ich versuchen wie ich an meine benötigten Daten komme. Darf ich vielleicht/eventuell/leider nochmal eure Hilfe in Anspruch nehmen?

    web933 schrieb:

    Darf ich vielleicht/eventuell/leider nochmal eure Hilfe in Anspruch nehmen?
    Stell eine konkrete Frage, dann erhältst Du eine konkrete Antwort. :thumbsup:
    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:

    lieber weg.



    Was soll das Rod? Du tust ja grade so, als hätte totalen Bullshit geschrieben.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Leider doch noch eine Frage. Nachdem ich hier:

    VB.NET-Quellcode

    1. Dim geklickterButton As Button = DirectCast(sender, Button)

    meinen Button gefunden habe, wie bringe ich diesen Wert in eine public-Variable um ihn in folgenden Sub's weiter verwenden zu können?
    Dim geklickterButton As Button global Deklarieren, also nicht in einer Sub

    in einer sub dann den wert zuweisen:

    VB.NET-Quellcode

    1. Private Sub Bla()
    2. geklickterButton = DirectCast(sender, Button)
    3. End Sub



    dann ist die variable in allen sub´s in dieser Klasse verfügbar.

    mfG

    Derfuhr

    //Deklaration als Public ist nur nötig wenn du auf diese variable aus einer anderen
    Klasse zugreifen möchtest.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Derfuhr“ ()

    Hey,

    klar gibt es die. Ein Lösungsansatz wäre, wenn Du jeden Button, den Du erstellst, einfach in einer List (Of Button) speicherst. Willst Du alle löschen, so rufst Du einfach für jeden Button in der Liste die Dispose()-Methode auf.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Scheint sich hier zu meiner unendlichen Geschichte zu entwickeln ;)
    Danke übrigens an die zwei vorangegengenen Antworter. Hat mir wieder einmal weiter geholfen.

    Nun habe ich das folgende Problem. Folgende Daten stehen mir aus einer Textdatei zur Verfügung:

    Belegtmelder|Kreuzungsgleis3|0|534|350|Kreuzungsgleis

    Kreuzungsgleis3 ist der Name eines Buttons der zur Laufzeit erstellt wurde. Was muss ich mit diesem (im Moment ja nur ein reiner Text) tun um auf seine Eigenschaften zugreifen zu können?

    Und schon wieder einmal bedanke ich mich hoffnungsvoll für die hoffentlich eingehenden Tips
    web933