Eventi tra form

lunedì 03 febbraio 2014 - 22.11
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio 2010  |  MySQL 5.0  |  Access (.mdb)

Bazzi Profilo | Junior Member

Ciao a tutti,

chiedo un consiglio per un problemino che vorrei studiare/risolvere.
Ho un programma Vb.Net con un menù che può aprire un paio di form MDI, la Form A e la Form B.
Una delle 2 form, la Form B può aprire a sua volta un'altra Form C.
Avrei bisogno di intercettare nella Form A alcuni eventi che vengono "sparati" dalla Form C.

Mi date un consiglio su come gestire questo caso ?

Grazie a tutti.
The Bazz

0v3rCl0ck Profilo | Guru

Ciao, ti consiglio di pensare ad implementare un message broker, che non è altro che una classe che viene istanziata all'avvio dell'applicazione che espone dei metodi per ricevere e spedire messaggi. Chi spedisce deve solo fare creare una classe (messaggio) e "spararlo", chi invece vuole ricevere, deve sottoscriversi ad un tipo di messaggio per rimanere in ascolto, questo lo trovo uno dei metodi migliori ed elegati, che ti permette di non accoppiare le form, garantendoti un buon livello di disaccoppiamento e riutilizzazione del codice.

qui ne trovi un esempio implementato per wpf, ma si può utilizzare tranquillamente:

https://radical.codeplex.com/wikipage?title=The%20message%20broker
https://radical.codeplex.com/wikipage?title=Message%20broker%3a%20POCO%20Messages

https://radical.codeplex.com/SourceControl/latest


ciao,
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic

Bazzi Profilo | Junior Member

Grazie per il consiglio !
Però, scusa l'ignoranza, capisco a livello teorico cosa intendi...ma dal punto di vista pratico non ci sono...
In che modo "sparo" il messaggio da una form ed in che modo ricevo dall'altra.
Scusa ma sono un po' scarso...hai magari da indicarmi qualche esempio in VB.net ?

Ciao e grazie.
The Bazz

0v3rCl0ck Profilo | Guru

Non ho niente di pronto in vb.net e in c# lo prenderei direttamente da radical o altri framework open-Source che hanno implementato quel patern di message broker

Appena riesco provo a vedere se riesco a farti un esempio base o a trovare qualcosa di già fatto


Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic

Bazzi Profilo | Junior Member

Mizze....che rapidità :-)
Saresti veramente un mito...ti devo una birra !
Grazie !
The Bazz

0v3rCl0ck Profilo | Guru

ti ho preparato un esempio che utilizza direttamente il message broker implementato in radical, aggiungendo un implemetazione di un dispatcher base per le windows forms, dato che in radical sono presenti principalmente implementazioni basate su wpf, ma come puoi vedere i concetti sono talmente generici che il codice sorgente di radical, per le parti core base, non è legato alla piattaforma wpf, perchè è stato diviso molto bene in dll contenenti soluzioni ai problemi più comuni (senza legami alle dll di wpf solo al .net core), e altre dll per la gestione mirata di wpf, wp8, silverlight, ecc...

L'esempio lo trovi sul mio github, nelle CommunityResources, da dove puoi scaricare lo zip contenente tutti gli esempi pubblicati fino adesso compreso il tuo:

http://github.com/micdenny/CommunityResources


Inoltre te l'ho temporaneamente pubblicato qui:

http://we.tl/JyKY4dwffN


Se non ti è chiaro il funzionamento, posso anche costruirtene uno da zero molto base, per farti capiri i pricipi, ma non so se ne ho il tempo, per questo ti ho intanto pubblicato in esempio basato su una libreria già completa.

ciao,
Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic

Bazzi Profilo | Junior Member

Come già detto...sei un mito !
Grazie davvero per le dritte. Ora devo mettermi a studiare ! :-)

In effetti, quello che mi interessa, è capire il funzionamento...quando avrai tempo (e voglia) magari mi piacerebbe approfondire con un esempio da zero.
Intanto studio ed accetto la tua risposta !

Se ho dubbi, ti romperò ancora le scatole :-)

Ti ringrazio!
The Bazz

0v3rCl0ck Profilo | Guru

>Come già detto...sei un mito !

ma va la...non esageriamo

>Grazie davvero per le dritte. Ora devo mettermi a studiare !
>:-)
>
>In effetti, quello che mi interessa, è capire il funzionamento...quando
>avrai tempo (e voglia) magari mi piacerebbe approfondire con
>un esempio da zero.
>Intanto studio ed accetto la tua risposta !

volentieri, mi fa bene anche a me, ripasso un po' di cose

>
>Se ho dubbi, ti romperò ancora le scatole :-)
>
>Ti ringrazio!
>The Bazz

figurati, alla prossima


Michael Denny
Software Developer & Architect
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
Twitter: @dennymic
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5