Ich möchte für absolut alle Controls einer Form etwas machen. Ich habe mir eine rekursive Methode erarbeitet, die auch alle "Childcontrols" eines Controls durchgeht. Mein Problem ist, dass dabei aber z.B. nicht die ToolStripMenuItems aufgelistet werden. Mein Code sieht wie folgend aus:
Damit werden mir zwar alle Buttons, Listviews, Toolstrips etc ausgegeben, aber eben nicht die ToolStripMenuItems. Gibt es wirklich keine andere Möglichkeit als das Control, das gerade "durchsucht" wird, in den entsprechenden Typ zu casten und dann mittels items alle Subitems durchzugehen? Hat jemand einen Tipp (oder eventuell sogar fertigen Sourcecode), wie ich das schaffen könnte?
VB.NET-Quellcode
- Public Sub TranslateForm(ByRef frm As Form)
- For Each cntrl As Control In frm.Controls
- Me.TranslateControl(cntrl)
- Next
- End Sub
- Private Sub TranslateControl(ByRef cntrl As Control)
- MsgBox("Control: " & cntrl.Name)
- For Each item As System.Windows.Forms.Control In cntrl.Controls
- Me.TranslateControl(item)
- Next
- End Sub
Damit werden mir zwar alle Buttons, Listviews, Toolstrips etc ausgegeben, aber eben nicht die ToolStripMenuItems. Gibt es wirklich keine andere Möglichkeit als das Control, das gerade "durchsucht" wird, in den entsprechenden Typ zu casten und dann mittels items alle Subitems durchzugehen? Hat jemand einen Tipp (oder eventuell sogar fertigen Sourcecode), wie ich das schaffen könnte?