色々と課題多き今日この頃ですが、また課題が増えてしまいました。T-T [ 一瞬で無事解決しました。]
内容の確認は、たぶん先の事となりそうなので、忘れないようにメモしておきます。
?
【内容】
フォームやコンテナの中にあるコントロールのコレクションを列挙した時、コレクションの取得の順序はそのフォームやコンテナに配置した順序と逆の順番である。
【検証】
用意するフォーム及びコントロール
コントロールの種類 |
コントロールの名前 |
備考 |
Form |
Form1 |
|
Button |
Button1 |
|
GroupBox |
GroupBox1 |
|
RadioButton |
RadioButton1 |
GroupBox1の中に配置 |
RadioButton |
RadioButton2 |
GroupBox1の中に配置 |
RadioButton |
RadioButton3 |
GroupBox1の中に配置 |
CheckBox |
CheckBox1 |
GroupBox1の中に配置 |
CheckBox |
CheckBox2 |
GropeBox1の中に配置 |
Visual Basic 2005 コード
Public Class Form1
??? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
??????? ' GroupBox1の中にあるコントロールコレクションからコントロールを取得
???????For Each myControls As Control In Me.GroupBox1.Controls
??????????? '?取得したコントロールの名前を出力する。
??????????? Console.WriteLine(myControls.Name)
??????? Next
??? End Sub
End Class
?
【実行結果】
CheckBox2
CheckBox1
RadioButton3
RadioButton2
RadioButton1
【確認すべき内容】
列挙したコントロールは逆から取得されている。 なぜだぁ~~~~~~!!!
?
【解決しました。】
じゃんぬさんからコメントを頂き、わずか数分で解決してしまいました。^^;
なるほどなぁ… いわれてみれば確かにそうだけど、思いもしなかった。(苦笑)