VB - Simulando um hiperlink com o controle Label
Vou mostrar como obter o efeito de um hiperlink usando controle Label no Visual Basic step by step...
- Inicie o VB e no formulário padrão insira duas etiquetas - Label1 e Label2.
- No formulário padrão insira a seguinte declaração para a API - ShellExecute - pois vamos usá-la para chamar o Navegado padrão( Brownser para os íntimos).
| Private Declare
        Function ShellExecute Lib "shell32.dll" Alias
        "ShellExecuteA" (ByVal hwnd As Long, ByVal
        lpOperation _ As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long | 
- Agora no evento Load do formulário , insira o código abaixo para iniciar as etiquetas:(altere os endereços para o seu caso)
| Private Sub Form_Load() With Label1 .AutoSize = True .ForeColor = vbBlue .Font.Underline = True .Caption = "http://www.geocities.com/macoratti" End With With Label2 .AutoSize = True .ForeColor = vbBlue .Font.Underline = True .Caption = "macoratti@riopreto.com.br" End With End Sub | 
No evento de cada uma das etiquetas vamos invocar a API para abrir o Browser e o correspondente endereço ou URL.
| Private Sub
        Label1_Click() Dim ret& ret = ShellExecute(Me.hwnd, "OPen", "http://www.geocities.com/macoratti", "", "", 1) End Sub | 
| Private Sub
        Label2_Click() Dim ret& ret = ShellExecute(Me.hwnd, "OPen", "mailto:macoratti@riopreto.com.br?subject=Qual o problema?", "", "", 1) End Sub | 
Para terminar iremos tratar os eventos de mouse - MouseDown , MouseUp e MouseMove - sobre cada etiqueta :
Para Label 1 :
| Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = vbBlue End Sub | 
| Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = vbRed End Sub | 
| Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Label1.ForeColor = vbRed Then
    Label1.ForeColor = vbBlue
  ElseIf Label1.ForeColor = vbBlue Then
    Label1.ForeColor = vbRed
  End If
  Screen.MousePointer = 10
End Sub | 
Para etiqueta Label2 :
| Private Sub Label2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = vbBlue End Sub | 
| Private Sub Label2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Label1.ForeColor = vbRed End Sub | 
| Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Label2.ForeColor = vbRed Then
    Label2.ForeColor = vbBlue
  ElseIf Label2.ForeColor = vbBlue Then
    Label2.ForeColor = vbRed
  End If
  Screen.MousePointer = 10
End Sub | 
Até a próxima...