la variabile pubblica non esiste, a te sembra di dichiarare una variabile pubblica, ma vb crea una property in maniera trasparente. VB6 quando ad ogni set di un valore ed a ogni richiesta di valore creava la property, ovviamente questo incideva sulle prestazioni. Questo almeno vb.net non lo fa.

Cmq meglio una property direttamente, gestisci ad esempio quando riceve un valore, se questo valore è corretto, quando lo restituisci lo potresti formattare secondo un certo formato, quindi la gestione del dato è più pulità e il codice più ordinato.

Un evento da solo non ti serve, ma metti che la classe deve lavorare per i fatti suoi, quindi il programma dopo aver ad esempio invocato un metodo andare avanti per i fatti suoi, poi viene "scatenato" l'evento e il programma ne riprende il controllo.

Spero altri abbiano altro da dire