Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Creare oggetti dinamicamente da file INI
Forum - C# / VB.NET - Creare oggetti dinamicamente da file INI

Avatar
orma674 (Normal User)
Rookie


Messaggi: 55
Iscritto: 02/06/2008

Segnala al moderatore
Postato alle 18:08
Lunedì, 09/09/2013
Salve a tutti,
chiedo il vostro aiuto per creare oggetti dinamicamente da file INI.

Mi spiego meglio.
Ho la necessità che attraverso la lettura del file INI, si possano disporre dei controlli sul form.

Il file INI ovviamente viene generato in chiusura all'applicazione memorizzando tutte le proprietà dei controlli.

Ho provato a leggere il file cosi strutturato
[Button]Name=Button1

assegnandolo i valori letti in questo modo
Dim _Type as String = Button
Dim _Nameas String = Button1

DirectCast(_Name, _Type)

ma ovviamente ho trovato che non funziona.
Dice che è impossibile convertire String in Type.

Grazie anticipatamente
Marcello


Orma674 by Marcello
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 18:41
Lunedì, 09/09/2013


PM Quote
Avatar
orma674 (Normal User)
Rookie


Messaggi: 55
Iscritto: 02/06/2008

Segnala al moderatore
Postato alle 18:48
Lunedì, 09/09/2013
Ho messo giù il seguente
Dim _Type As Type = Type.GetType("System.Windows.Forms.Button")
Dim _Name As String = "Button1"
DirectCast(_Name, _type)

non funzione, mi da il seguente errore
Tipo _Type non definito

Grazie per la collaborazione
Marcello


Orma674 by Marcello
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 10:00
Martedì, 10/09/2013
Provo a scrivertelo in C# poi ti converti il codice.


Codice sorgente - presumibilmente C# / VB.NET

  1. //Ciclo per recuperare tutti i componenti da una form
  2.  
  3.  for (int i = 0; i < this.Controls.Count; i++)
  4. {
  5.  
  6.                 if (this.Controls[i].GetType() == typeof(Button))
  7.                 {
  8.                     MessageBox.Show("Questo pulsante si chaima: " + ((Button)this.Controls[i]).Text);
  9.                 }
  10.  
  11.                
  12.             }
  13.  
  14. }




In Vb.net dovrebbe essere così


Codice sorgente - presumibilmente VB.NET

  1. For i As Integer = 0 To Me.Controls.Count - 1
  2.  
  3.         If Me.Controls(i).[GetType]() = GetType(Button) Then
  4.                 MessageBox.Show("Questo pulsante si chaima: " + DirectCast(Me.Controls(i), Button).Text)
  5.  
  6.  
  7.         End If
  8. Next




PM Quote
Avatar
orma674 (Normal User)
Rookie


Messaggi: 55
Iscritto: 02/06/2008

Segnala al moderatore
Postato alle 10:48
Mercoledì, 25/09/2013
Grazie ho risolto leggendo il tag e facendo eseguire un DirectCast in base alla stringa del Tag.

Select Case Tag
  Case "Button"
    DirectCast(Name,Button)
End select


Orma674 by Marcello
PM Quote