ContextMenuStrip nicht in Controls auflistung

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von DenniDewito.

    ContextMenuStrip nicht in Controls auflistung

    Ich Möchte alle Controls einer Form Auflisten um die Eigenschaft Text anzupassen an die aktuelle Programsprache.

    ich habe Folgendes bereits gefunden:

    Alle Controls einer Form auflisten - Sonstige Problemstellungen - VB-Paradise 2.0 — Die große Visual–Basic– und .NET–Community (vb-paradise.de)

    aber leider bekomme ich diese mit dem ContextMenuStrip nicht hin.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. DoToAllControls(Me)
    4. End Sub
    5. Sub DoToAllControls(ByVal m_Control As Control)
    6. For Each ctrl As Control In m_Control.Controls
    7. If ctrl.Controls.Count > 0 Then
    8. DoToAllControls(ctrl)
    9. End If
    10. If ctrl.GetType().Equals(GetType(ContextMenuStrip)) Then
    11. For Each item As ToolStripItem In DirectCast(ctrl, ContextMenuStrip).Items
    12. MsgBox(item.Name)
    13. Next
    14. End If
    15. MsgBox(ctrl.Name)
    16. Next
    17. End Sub
    18. End Class


    Kann mir jemand sagen was ich Falsch mache?
    Willkommen im Forum.

    Du suchst an der falschen Stelle. ContextMenuStrip ist innerhalb der components zu finden, nicht der Controls. Das gilt z.B. auch für "normale" Menüs.

    ##########

    VB.NET-Quellcode

    1. For Each Component In Me.components.Components.Cast(Of ComponentModel.Component)
    2. MessageBox.Show(Component.ToString)
    3. Next

    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.

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

    @DenniDewito Ebenfalls: Willkommen im Forum. :thumbup:
    Wenn Du Dein Programm mehrsprachig machen willst, gugst Du hier:
    Programme mehrsprachig erstellen
    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!
    Steht doch in Post#2 als Nachtrag.
    Innerhalb der Form-Klasse, wo eben der ContextMenuStrip auf dem Form ist:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'hier also, wenn man einen Button1 hat und den anklickt
    2. For Each Component In Me.components.Components.Cast(Of ComponentModel.Component)
    3. MessageBox.Show(Component.ToString)
    4. Next
    5. End Sub
    Bilder
    • Result.png

      1,9 kB, 313×143, 58 mal angesehen
    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.

    DenniDewito schrieb:

    um die Eigenschaft Text anzupassen an die aktuelle Programsprache.
    Das ist nicht erforderlich.
    In dem Moment, wo Du die Sprache vorgibst, zeigen alle lokalisierten Controls den Text in der aktuellen Sprache an.
    Sind sie nicht lokalisiert, wird der Text in der Default-Sprache angezeigt.
    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!