settembre 2004 Blog Posts
Volete creare delle etichette trasparenti e non sapete come fare. Niente di più semplice. "Basta ingannare l'occhio..." Invece di usare una label usate una textBox senza bordi e "giocate con TransparencyKey".
ES:
TextBox1.ReadOnly = True
TextBox1.TabStop = False
TextBox1.BorderStyle = BorderStyle.None
TextBox1.BackColor = Color.Red
TransparencyKey = Color.Red
Su un form aggiungete un controllo TextBox denominato "TextBox1" e impostiamo il colore di sfondo a RED. Ora impostiamo la proprietà "TransparencyKey " del form a RED , così il rosso non verrà "disegnato". Otterremmo un'etichetta trasparente. Per perfezionare il tutto impostiamo il bordo dell textbox a "none" , tabStop=false e ReadOnly=true. Sembrerà una label trasparente, ottenuta con pochissimo sforzo
NB:...
Oggi, tra i post letti sul forum Microsoft, chiedevano se è possibile creare un form conoscendo il nome in formato stringa: ebbene si !!! Corre in nostro aiuto la Reflection.
Supponiamo di avere nel nostro progetto tante form e di volerne visualizzare una avendo il nome in formato stringa . Questa potrebbe essere una soluzione:
' il nome deve avere la sintassi " nomeassembly.nomeform" <-- Attenzione è case-sensitive
Dim nomeForm As String = "TestForm.frmtest"
Dim dinamicForm As Type
dinamicForm = Type.GetType(nomeForm)
Dim o As Object = Activator.CreateInstance(dinamicForm)
Dim f As Form = DirectCast(o, Form)
f.Show()
In questo esempio verrebbe visualizzata la form "frmtest"
Procedura che stampa a video la percentuale di CPU utilizzata. Ovviamente deve essere adattata ai nostri scopi. Viene fornita in versione "per console". La procedura cicla 10000 volte per darvi il tempo di aprire programmi e vedere come vengono incrementate le percentuali
Sub cpucount()
Dim pcpu As New PerformanceCounter("Processore", "% Tempo Processore", "_Total")
Dim I As Integer
Do
Dim v1 As CounterSample = pcpu.NextSample
System.Threading.Thread.CurrentThread.Sleep(100)
Dim v2 As CounterSample = pcpu.NextSample
I += 1
Console.WriteLine(CounterSample.Calculate(v1, v2).ToString)
Loop Until I > 10000
Console.WriteLine("fine")
Console.ReadLine()
End Sub
Function isDecimal(ByVal num As Double) As Boolean
Try
If num / (Fix(num)) = 1 Or num = 0 Then
Return False
Else
Return True
End If
Catch ex As DivideByZeroException
End Try
End Function
Sicuramente non è la soluzione migliore ma FUNZIONA!!!! (come diceva il buon vecchio DOC in "ritorno al futuro")
Il giorno 24/09/2004 dovrò affrontare il mio primo esame MCP . Speriamo che la forza sia con me, dato che sto studiando da 3 mesi ... non è facile trovare il tempo tra lavoro e palestra. Mi rivolgo a tutte le persone che dicono di non avere tempo. Semplice: basta avere un po di volontà e spirito di sacrificio.