Oppure

Loading
30/06/09 11:56
Linkinf22
:ot: Perchè? Cos' ho fatto di sbagliato che non è permesso dal regolamento?
aaa
30/06/09 16:56
Postato originariamente da Linkinf22:
:ot: Perchè? Cos' ho fatto di sbagliato che non è permesso dal regolamento?

[OT]
Si riferiva a questo, leggi:
pierotofy.it/pages/extras/forum/16/53085-estensione_del_regolamento/
[/OT]
01/07/09 10:35
Linkinf22
:ot: Ok, Scusatemi... la prossima volta cercherò di ricordarmene. Chiuso OT

Comunque, il programma lo vorrei fare senza scrivere nessun codice nel programma ma solo nella dll, cioè, mettiamo che io abbia messo un OpenFileDialog che mi permetta di aprire un file dll, io seleziono il file dll che voglio aprire e il contenuto della dll viene aggiunto al TabControl... si potrebbe fare?
aaa
01/07/09 11:10
Allora cambia tutto :D tu stai dicendo che vuoi caricare una Dll a Runtime ed aggiungerne le proprietà al tuo TabControl giusto? Se è così, forse c'è qualche metodo del Namespace System.Reflection che può aiutarti! Ammesso che sia possibile :k:
P.S. Se vuoi esempi su come utilizzare i metodi del Namespace System.Reflection, scarica il programma DataViewer di Totem dalla sezione sorgenti VB.Net e convertilo in C# :)
01/07/09 11:39
Linkinf22
Ok, ci sono riuscito, ho aggiunto l' eseguibile del programma nei riferimenti della dll e ho messo il modifier del tabControl su public, ora però non so come far eseguire la dll quando ho selezionato la dll e premuto Ok sull' openFileDialog. Sapete cosa devo scrivere nel private void openFileDialog_FileOk(object sender, CancelEventArgs e)?
aaa
01/07/09 11:48
Il Totem
Evidentemente non hai neanche letto il codice che ti avevo suggerito io, che faceva proprio al caso tuo. Non è necessario aggiungere l'eseguibile nei riferimento della dll, poiché una tabcontrol è sempre un tabcontrol sia che sia nella libreria sia che venga dichiarato in un form: l'unico namespace che devi usare è system.windows.forms (che contiene la classe del controllo). Nella dll basta scrivere il metodo nella forma da me proposta precedentemente, ossia:
void Aggiungi(TabControl tab)
{
  //...
  tab.TabPages.Add(pagina);
]

E per caricare il metodo basta usare la reflection:
Reflection.Assembly Asm = Reflection.Assembly.Load(dllPath);
Type T = Asm.GetType("NomeClasse");
Reflection.MethodInfo Method = T.GetMethod("Aggiungi");
object Instance = Asm.CreateInstance(T.Name);
Method.Invoke(Instance, new object[] { TabControl1 });
aaa
02/07/09 18:52
Linkinf22
Scusa Il Totem, ma ho provato a fare come dici tu, però quando seleziono il file .dll dall' openFileDialog e lo apro non succede niente, non si chiude nemmeno l' openFileDialog... ??? :grr: :d
aaa
03/07/09 11:29
Il Totem
Dato che non hai postato il codice, non posso che supporre che tu abbia sbagliato qualcosa. Per sapere cosa dovrei avere qualche informazione i più.
aaa