Dal punto di vista concettuale mi sembra errato utilizzare la parola Shared per accedere alle proprietà di oggetti dentro ad un form. Come riportato nella guida, "È possibile utilizzare la parola chiave Shared per indicare che uno o più elementi di programmazione dichiarati sono condivisi. Gli elementi condivisi non sono associati a un'istanza specifica di una classe o di una struttura. È possibile accedere a tali elementi qualificandoli con il nome di classe o di struttura oppure con il nome di variabile di un'istanza specifica della classe o struttura.". In pratica shared serve per creare proprietà o metodi che non fanno riferimento ad una istanza specifica della classe, come questo esempio:
codice:
Console.WriteLine(Integer.MaxValue)
Per leggere o modificare le proprietà dei controlli dentro ad un form è sufficiente lasciare la definizione predefinita:
codice:
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend permette infatti di accedere ai membri della classe da un'altra classe del progetto.