Binding di eventi da una Class Library ad una WinForm

martedì 06 giugno 2006 - 12.23

phrozzy Profilo | Newbie

Salve a tutti, sono nuovo del forum e ho un problema abbastanza complicato (per me). Sviluppo in C++ da svariati anni e mi sto avvicinando al .NET Framework 2.0 da poco tempo, ovviamente usando managed C++.

Sto sviluppando un progetto modulare, ovvero delle Class Library (DLL) le quali fanno da 'manager' per il loro scopo applicativo.
Ad esempio, ho un gestore di connessioni MySQL tramite Odbc all'interno di una dll, e vorrei fare il binding dell'evento InfoMessage del namespace System::Data::Odbc su di un gestore di evento definito all'interno di una WinForm...

Sto facendo così ma non penso sia la strada giusta:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

[Codice Form1 principale, dove verrà gestito l'evento proveniente dalla Class Library] CDBManager ^ DBManager = gcnew CDBManager("", "", "", "", &MysqlNET::Form1::DBInfoMessage); .. private: void DBInfoMessage(Object ^ Sender, OdbcInfoMessageEventArgs ^ e) // Gestore dell'evento { ... }

L'errore che il compilatore mi dà è il seguente:
error C3374: can't take address of 'MysqlNET::Form1::DBInfoMessage' unless creating delegate instance

Ho intuito che dovrei usare un delegato, ma non ho capito come. E' possibile fare quello che mi sono proposto ? Cioè gestire un evento in una WinForm nonostante questo evento venga generato in una Class Library e passare il gestore di questo tramite parametro sul costruttore della Class Library ?

Grazie anticipatamente.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5