Coloro che seguono con assiduità la nostra community, avranno avuto modo di leggere i post di Andrea Lisi, inerenti la programmazione in Visual Basic 6. Leggendo tali post, ho avuto l'idea di una nuova iniziativa, col beneplacito di Andrea: "tradurre" in Visual Basic 2008 i frammenti di codice da lui illustrati, al fine di far vedere la potenza e la semplicità di Visual Basic 2008 e .NET Framework nei confronti del vecchio VB 6.
Si tratta, ovviamente, di frammente di codice indirizzati a chi si sta ancora chiedendo il perchè dei vantaggi di passare a .NET e non a coloro che già hanno dimestichezza con questa tecnologia.
Oggi inizio col tradurre due piccoli post. Nel primo post, Andrea ci mostra come creare una Label con collegamento ipertestuale. In Visual Basic 2008, l'obiettivo è di gran lunga più semplice. Esiste, infatti, un controllo chiamato LinkLabel, che si comporta in modo simile a una Label normale, ma che implementa il puntatore del mouse con la manina, il testo sottolineato e le variazioni di colore relative alla visita del collegamento ipertestuale associato al controllo stesso. Si trova nella casella degli strumenti e si usa in questo modo, gestendo l'evento LinkClicked:
Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
Process.Start("Explorer.exe", "C:\")
End Sub
La classe Process espone un metodo statico Start, che si usa in alternativa all'API ShellExecute di VB 6 e che passa, quindi, sotto il controllo di .NET Framework. Nell'esempio, al clic viene aperto Esplora Risorse di Windows sulla directory C:\.
In questo secondo post, invece, Andrea ci illustra come cambiare la priorità di un processo in VB 6. Grazie a .NET Framework, lo stesso risultato si ottiene, in VB 2008, con due righe di codice:
Dim P As Process = Process.GetCurrentProcess
'L'enumerazione ProcessPriorityClass ci permette di specificare
'la priorità
P.PriorityClass = ProcessPriorityClass.Idle
La classe Process rappresenta un singolo processo ed espone, tra gli altri, un metodo chiamato GetCurrentProcess che permette di ottenere l'istanza del processo corrente. Tramite l'enumerazione ProcessPriorityClass, poi, è possibile stabilire la priorità richiesta.
Alessandro