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 - form in formato dll
Forum - C# / VB.NET - form in formato dll

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
lorenzoxx89 (Normal User)
Newbie


Messaggi: 8
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 0:53
Mercoledì, 22/10/2008
Ciao a tutti,
vorrei creare un programma in vb .net, in cui le form siano compilate come delle dll e che il progetto "centrale" le richiami visualizzandole in modo da lavorarci.
Tutto ciò vorrei farlo per rendere ovviamente il programma facilmente aggiornabile.
Come compilare le form? e soprattutto come richiamarle(con eventuali passaggi di variabili)?
Grazie in anticipo

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:01
Mercoledì, 22/10/2008
Crei un'applicazione windows form, e modifichi come vuoi la tua form. Dopodiché, nelle proprietà progetto cambi il tipo di applicazione in Class Library, quindi compili, e ottieni una libreria *.dll.

Nel programma principale, cerchi tutte le dll nella cartella che desideri, e controlli che contengano un form, ad esempio in questo modo:
Codice sorgente - presumibilmente VB.NET

  1. Dim Asm As Assembly = Assembly.LoadFrom(DllPath)
  2. Dim Result As Form = Nothing
  3.  
  4. For Each T As Type In Asm.GetTypes
  5.   If T.BaseType Is GetType(Form) Then
  6.     Dim TypeName As String = T.FullName
  7.     Result = Asm.CreateInstance(TypeName)
  8.   End If
  9. Next


Se alla fine del ciclo Result non è Nothing, allora contiene il form caricato dalla libreria.

P.S.: serve un "Imports System.Reflection"

PM Quote
Avatar
lorenzoxx89 (Normal User)
Newbie


Messaggi: 8
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 14:53
Mercoledì, 22/10/2008
Grazie mille! ma le variabili, vengono condivise come se fosse una form interna al progetto o bisogna richiamarle in qualke modo?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:22
Giovedì, 23/10/2008
Quel codice è un estratto da un mio programma, ed era all'interno di una funzione, che restituiva come risultato Result. Credo che l'ideale sarebbe replicare lo stesso meccanismo, preferibilmente includendo il form in una lista globale, o in una variabile globale come dici tu.

PM Quote
Avatar
lorenzoxx89 (Normal User)
Newbie


Messaggi: 8
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 22:22
Giovedì, 23/10/2008
non ci sono riuscito :(. il fatto è che vengo da vb6 e devo usare questo procedimento per iniziare un progetto importante.
mi potresti cortesemente inviare o dare un link di un piccolo progetto?
anke solo con una form e una dll, con la form ke apre la dll contenente un altra form.
Grazie

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:09
Venerdì, 24/10/2008
Codice sorgente - presumibilmente VB.NET

  1. Imports System.Reflection
  2.  
  3. '...
  4.  
  5. Dim DllPath As String = Application.StartupPath & "\Form.dll"
  6. Dim Asm As Assembly = Assembly.LoadFrom(DllPath)
  7. Dim Result As Form = Nothing
  8.  
  9. For Each T As Type In Asm.GetTypes
  10.   If T.BaseType Is GetType(Form) Then
  11.     Dim TypeName As String = T.FullName
  12.     Result = Asm.CreateInstance(TypeName)
  13.     Exit For
  14.   End If
  15. Next
  16.  
  17. If Result IsNot Nothing
  18.   Result.Show()
  19. End If


PM Quote
Avatar
lorenzoxx89 (Normal User)
Newbie


Messaggi: 8
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 22:39
Venerdì, 24/10/2008
bella li grazie!

PM Quote
Avatar
lorenzoxx89 (Normal User)
Newbie


Messaggi: 8
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 0:22
Sabato, 25/10/2008
ok quindi ora per passargli delle variabili se ho ben capito potrei far cosi: creo una classe e la metto in una dll. questa dll la importo sia nella form ke verra compilata come dll, sia nella form principale.
sarebbe giusto fare così?
---
non funziona ma ineffetti è logico.. le dikiarazioni vanno bene ma ora manca un metodo per passare le variabili .. help :(

Ultima modifica effettuata da lorenzoxx89 il 25/10/2008 alle 2:19
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:12
Domenica, 26/10/2008
Non ho ben capito il tuo problema.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo