■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が入るようにするにはどうしたら良いですか?
|
|