Ich verwende VisualStudio 2008 auf einem System mit .NET Compact Framework 3.5 in VB.NET und habe ein Formular, das ein paar Komponenten enthält, nämlich Timer und Messageboxen. Teil meiner Anwendung ist ein Sub, das alle Steuerelemente im Formular durchläuft und Eigenschaften wie Front oder BackColor anpasst, sodass wir die gesamte Anwendung bei Bedarf neu skalieren können.Wie durchläuft ich Komponenten in einem Windows Form?
Während ich durch diese Kontrollen Iteriere, möchte ich auch die Komponenten durchlaufen und einige Eigenschaften der Messageboxen auf dem Formular festlegen. Ich habe versucht, mit einem For Each auf Me.components.Components zuzugreifen, aber diese Sammlung scheint privat zu sein.
For Each comp As Object in Me.components
<do something>
Next comp
Gibt es eine Möglichkeit, die Komponenten zu durchlaufen?
EDIT:
ich war falsch denken, dass me.components.Component privat ist. Mit Me.components.Components
bekomme ich folgende Fehlermeldung:
'Components' is not a member of 'System.ComponentModel.IContainer".
A 'MessageBox' ist nicht Bestandteil noch eine Kontrolle. Es ist ein Dialog nur dann erstellt, wenn Sie anrufen' MessageBox.Show() '. Sie können es wahrscheinlich nicht mit .NET-Code finden, sondern mit Platform Invocation, zum Beispiel mit der 'EnumWindows()' -Funktion von WinAPI –
Nach ein wenig Graben habe ich festgestellt, dass die Komponenten im Compact Framework eigentlich nicht verwandt sind das Formular selbst. Sie können immer noch woanders gefunden werden, siehe diese zwei Antworten: [** \ [1 \] **] (http://stackoverflow.com/a/14628749/3740093) [** \ [2 \ ] **] (http://stackoverflow.com/a/371829/3740093). –