Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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)
Pro


Messaggi: 66
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

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

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

PM Quote
Avatar
orma674 (Normal User)
Pro


Messaggi: 66
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

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
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




https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
orma674 (Normal User)
Pro


Messaggi: 66
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

PM Quote