Announcement

Collapse
No announcement yet.

alle ansprechen

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • alle ansprechen

    Hi!
    Hab mal ne Frage:
    ich habe eine Windowsform -> form1
    auf der befinden sich 10 textboxen -> textbox1 - textbox10

    ist es möglich alle Textboxen mit nur einen Befehl anzusprechen? Oder muss ich jede einzelne ansprechen?

    Beispiel ich will in allen Textboxen den Text entfernen muss ich jede einzelne mit:
    Code:
    TextBox1.Clear()
    TextBox2.Clear()
    TextBox3.Clear()
    TextBox4.Clear()
    TextBox5.Clear()
    ' usw.............
    Geht es vielleicht auch das ich Textbox3 bis textbox6 einen befehl erteile und alle anderen dürfen nichts tun!
    Danke im Vorraus Gruß Jürgen

  • #2
    Hallo,

    du dann die ControlCollection mit der OfType<> Methode filtern und danach über dieses Resultat iterieren.

    Geht es vielleicht auch das ich Textbox3 bis textbox6 einen befehl erteile und alle anderen dürfen nichts tun!
    Einer TextBox kann kein Befehl erteilt werden (die waren ja nicht beim Bundesheer ).


    mfG Gü

    PS: Besserer Titel wäre auch nicht schlecht
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Hmm Danke für die rasche Antwort! Da ich ein Eiskalter Anfänger bin muss ich ehrlich gestehen das ich nix verstanden habe was du mir geantwortet hast!
      Einer TextBox kann kein Befehl erteilt werden (die waren ja nicht beim Bundesheer ).
      ja ja schon klar meinte ja damit das diese Textboxen gelöscht werden und die anderen eben nicht!

      Comment


      • #4
        Hallo,

        siehe:
        [highlight=vbnet]
        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
        * * For Each txt As TextBox In Me.Controls.OfType(Of TextBox)()
        * * * * txt.Clear()
        * * Next
        * *
        * * For Each txt As TextBox In Me.Controls.OfType(Of TextBox)().Where(Function(txt) txt.Name <> "textBox3" AndAlso txt.Name <> "textBox6")
        * * * * txt.Clear()
        * * Next
        End Sub
        [/highlight]

        meinte ja damit das diese Textboxen gelöscht werden
        Wirklich die TextBox löschen (= vom Formular entfernen) oder den Inhalt löschen?


        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          Wirklich die TextBox löschen (= vom Formular entfernen) oder den Inhalt löschen?
          Natürlich den inhalt! Sorry!

          Den Code werde ich gleich mal testen Danke für deine Hilfe
          Gruß Jürgen

          Comment


          • #6
            Hi! Habe eben den Code probiert. Folgender Fehler wird gezeigt:
            Fehler 10 Fehler bei der Überladungsauflösung, da keine zugreifbare "Where" mit diesen Argumenten aufgerufen werden kann:
            In "System.Linq.Enumerable" definierte Erweiterungsmethode "Public Function Where(predicate As System.Func(Of System.Windows.Forms.TextBox, Integer, Boolean)) As System.Collections.Generic.IEnumerable(Of System.Windows.Forms.TextBox)": Die Signatur der geschachtelten Funktion stimmt nicht mit der des Delegaten "System.Func(Of System.Windows.Forms.TextBox, Integer, Boolean)" überein.
            In "System.Linq.Enumerable" definierte Erweiterungsmethode "Public Function Where(predicate As System.Func(Of System.Windows.Forms.TextBox, Boolean)) As System.Collections.Generic.IEnumerable(Of System.Windows.Forms.TextBox)": Der Lambda-Parameter "txt" verbirgt eine Variable in einem einschließenden Block, eine zuvor definierte Bereichsvariable oder eine implizit im Abfrageausdruck deklarierte Variable.
            Was wird den das heißen?

            Comment


            • #7
              Was wird den das heißen?
              Das was da steht

              Hast du den Code 1:1 kopiert oder angepasst? Wenn ja wie?


              mfG Gü
              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

              Comment


              • #8
                1:1 so funktioniert er:
                Code:
                For Each txt As TextBox In Me.Controls.OfType(Of TextBox)()
                                    txt.Clear()
                                Next
                Das geht nicht (Da kommt die Meldung:
                Code:
                #
                For Each txt As TextBox In Me.Controls.OfType(Of TextBox)().Where(Function(txt) txt.Name <> "textBox3" AndAlso txt.Name <> "textBox6")
                 txt.Clear()
                Next
                noch ne Frage:
                Ich habe versucht das ganze auf eine Numericupdown umzumünzen mein Versuch:
                Code:
                For Each num As NumericUpDown In Me.Controls.OfType(Of NumericUpDown)()
                            num.Value = "0"
                        Next
                Da tut sich gar nix! Wieso das den?
                Gruß Jürgen

                Comment


                • #9
                  ad Where: Das ist LINQ und verwendet einen Lambda-Ausdruck. Damit kenne ihc bei C# aus aber nicht in VB.net - Sorry kann nicht weiterhelfen, aber das solltest du schon rausfinden können

                  ad NumericUpDown: Existiert so eines in der ControlCollection der Form? Ich kann nur raten da ich niciht weiß wie deine Form ausschaut.


                  mfG Gü
                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                  Comment


                  • #10
                    ad NumericUpDown: Existiert so eines in der ControlCollection der Form? Ich kann nur raten da ich niciht weiß wie deine Form ausschaut.
                    wie meinst du das den jetzt?
                    Wenn nicht wie kann ich das in die ControlCollection einfügen?

                    Comment


                    • #11
                      Wenn nicht wie kann ich das in die ControlCollection einfügen?
                      ZB wenn du es mit der Maus auf die Form ziehst

                      Oder per Code durch Controls.Add(...)


                      mfG Gü
                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                      Comment


                      • #12
                        Also wenn du damit meinst das ich im Designer Modus eine numericupdown von der toolbox in die Form gezogen habe dann ja Natürlich.

                        Comment


                        • #13
                          Das wesentliche für die Lösung des Problems wurde erwähnt und der Rest sollte durch Eigeninitiative erledigt werden. Eigeninitiative ist ein wesentliches Merkmal eines (gute) Programmierers.

                          Damit nicht alle eventuellen Möglichkeiten wo es geht und wo nicht ausdiskutiert werden müssen werde ich dieses Thema schließen.

                          mfG Gü
                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

                          Comment

                          Working...
                          X