C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 152 を表示中)
■88375 / )  Re[3]: フォームの全ての値を保存・読み込む方法
□投稿者/ アビド (5回)-(2018/08/24(Fri) 10:26:33)

HashTableにコントロールをアイテムとして、
コントロール名をキーとして入れれば
できそうな気がします。



    Public Function GetAllControls2(ByVal top As Control) As Hashtable
        Dim buf As Hashtable = New Hashtable
        For Each c As Control In top.Controls


            Dim c_nama = c.Name

            Add(buf, GetAllControls2(c))
        Next
        Return buf
    End Function


    Public Shared Function Add(ByVal first As Hashtable, ByVal second As Hashtable) As Hashtable
        Dim table As Hashtable = New Hashtable
        For Each e As DictionaryEntry In first
            table.Add(e.Key, e.Value)
        Next
        For Each e As DictionaryEntry In second
            If Not table.ContainsKey(e) Then
                table.Add(e.Key, e.Value)
            End If

        Next
        Return table
    End Function



のようにしてやってみたのですが、
なぜかTableLayoutpanelの下層に入っている
コントロールのNameが空になってしまいます。

ArrayListを使った方法で
 CType(buf.ToArray(GetType(Control)), Control())
のようにコントロール配列にキャストしてやると
Nameが入るようになるようです。

キャストせずにNameが入るようにするにはどうしたら良いですか?





返信 編集キー/


管理者用

- Child Tree -