Evento Scritto in C# non visibile in VB

martedì 27 maggio 2008 - 16.05

maxmax03 Profilo | Newbie

Ho creato una dll in c# che contiene un evento.
Ho importato la dll in progettino di prova in vb ma quando ho istanziato l'oggetto non compare nella casalla di riepilogo l'evento.
Ho quindi fatto la stessa operazione con un progettino c# e qui l'evento compare.
Sapreste darmi una spiegazione del perchè non si vede l'evento in VB

pasqualimassimo Profilo | Junior Member

molto probabilmente l'hai dichiarato privato e non pubblico o protect, ma per evento te cosa intendi una classe?

maxmax03 Profilo | Newbie

No è tutto è pubblico altrimenti avrei lo stesso problema in C#
ecco il pezzo di codice

public delegate void ChangeEventHandler(object source,int Stato);

public class PCSService
{

private ServiceController myService = new ServiceController("System Control Service");
string StrStatus = "" ;
private int mvarStatus;
public event ChangeEventHandler Changed;

public int Status
{
get{return mvarStatus;}
set{mvarStatus = value;}
}

public PCSService()
{
//objChgStatus.Changed += new ChangeEventHandler(OnServiceStatus);
}
/// <summary>
/// notifica la modifica dello stato
/// </summary>
public void ChangedStatus(int Stato)
{
if (Changed != null)
Changed(this,mvarStatus);
}

public void ServiceStatus()
{
/* Shut off the timer so it doesn't raise events while were
in this code
Me.tmrCheckStatus.Enabled = False */

Type MyStatoString = typeof(EnumStatoServizio);

if (myService != null)
{
/* Recreate myServer, otherwise the status for myServer never
changes, despite changes in the status of the
windows service
CheckControlService() */

switch (myService.Status)
{
case ServiceControllerStatus.Stopped:
StrStatus = Enum.GetName(MyStatoString,EnumStatoServizio.Fermo) ;
mvarStatus = Convert.ToInt16(EnumStatoServizio.Fermo );
break;

case ServiceControllerStatus.Running:
StrStatus = Enum.GetName(MyStatoString,EnumStatoServizio.Avviato ) ;
mvarStatus = Convert.ToInt16(EnumStatoServizio.Avviato);
break;

case ServiceControllerStatus.Paused:
StrStatus = Enum.GetName(MyStatoString,EnumStatoServizio.Pausa ) ;
mvarStatus = Convert.ToInt16(EnumStatoServizio.Pausa );
break;

default:
StrStatus = Enum.GetName(MyStatoString,EnumStatoServizio.Abort) ;
mvarStatus = Convert.ToInt16(EnumStatoServizio.Abort );
break;
}
}
}

Brainkiller Profilo | Guru

>Ho creato una dll in c# che contiene un evento.
>Ho importato la dll in progettino di prova in vb ma quando ho
>istanziato l'oggetto non compare nella casalla di riepilogo l'evento.
>Ho quindi fatto la stessa operazione con un progettino c# e qui
>l'evento compare.
>Sapreste darmi una spiegazione del perchè non si vede l'evento
>in VB

Perchè VB non ha nella finestra delle proprietà l'elenco degli eventi come C#. In C# è contraddistinta dall'icona di un piccolo fulmine giallo, in VB non c'è.

Per trovare gli eventi in VB.NET, li trovi nella finestra dove scrivi il codice, in alto a destra ci sono due combobox quella di destra dovrebbe contenere gli eventi.

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

maxmax03 Profilo | Newbie

Grazie per l'aiuto ma nel combobox in alto ci sono gli eventi relativi alla classe da implementare non di un'oggetto esterno.
ma forse non sono a conoscenza di qualcosa su qualche toolbar nascoste ???
Ma poi come è possibile che se io istanzio un'oggetto preesempio FileSystemWacther io vedo tutti i metodi le proprietà e gli eventi
Grazie.

maxmax03 Profilo | Newbie

Almeno credo impostando una funzione si mentte handles allora si ved l'evento
grazie a tutti
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