Desenvolvimento - Visual Basic .NET
Windows Application – Como adicionar um ToolTip a um TreeNode
Muitas pessoas costumam utilizar o controle TreeView em uma Windows Application para demonstrar determinada hierarquia. Neste artigo explicarei como podemos adicionar um ToolTip aos nós de uma TreeView, fazendo com que seja exibida uma descrição do TreeNode .
por Thiago J. MônacoMuitas pessoas costumam utilizar o controle TreeView em uma
Windows Application para demonstrar determinada hierarquia. O que muita
gente não sabe é que podemos estender determinadas funcionalidades deste
controle. Neste artigo explicarei como podemos adicionar um ToolTip aos nós de uma TreeView, fazendo com que seja exibida uma descrição do TreeNode . Para essa demonstração utilizaremos a tabela Categories da base de dados Northwind . Em um Windows Form qualquer, arraste uma TreeView da Toolbox e renomeie para trwToolTip; arraste também um ToolTip e renomeia para ttpTrw. Selecione a TreeView e defina a propriedade Dock para Fill , para que ela preencha o formulário por completo. Agora daremos início a codifição de nosso formulário. No início do CodeBehind importaremos o namespace System.Data.SqlClient afim de facilitar nossa codificação. |
Imports System.Data.SqlClient |
Agora iremos criar um método para preenchimento de nossa TreeView. |
Private Sub
CarregarTreeView() "Criamos uma conexão com nossa base de dados Dim _cnn As New SqlConnection("Data Source=.;Initial Catalog= Northwind;UserID=sa;Pwd=sa1234;") "Criamos um SqlCommand para definirmos a instrução SQL a ser utilizada Dim _cmd As New SqlCommand("SELECT CategoryName, Description FROM Categories", _cnn) "Criamos um SqlDataReader para armazenarmos os dados de nossa base Dim _dr As SqlDataReader "Declaremos um TreeNode, porém ainda não instanciaremos o mesmo Dim trnCategoria As TreeNode Try "Abrimos a conexão com o Banco _cnn.Open() "Executamos a leitura dos dados e armazenamos o resultado "em nosso SqlDataReader _dr = _cmd.ExecuteReader() "Efetuaremos um laço por todos os registros While _dr.Read() "Instanciamos um novo TreeNode trnCategoria = New< /FONT > TreeNode "Definimos o Texto a ser exibido no TreeNode trnCategoria.Text = _dr.Item("CategoryName") "Definimos a Tag de nosso TreeNode. "É na propriedade Tag que armazenaremos a Descrição a ser "exibida por nosso ToolTip trnCategoria.Tag = _dr.Item("Description") "Adicionamos o TreeNode a nossa TreeView trwToolTip.Nodes.Add(trnCategoria) End While Catch ex As Exception MsgBox(ex.ToString) Finally _dr.Close() _cnn.Close() _cnn.Dispose() _cmd.Dispose() trnCategoria = Nothing End Try End Sub |
Agora colocaremos a chamada para este método no evento Load de nosso formulário. |
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase .Load
CarregarTreeView() End Sub |
Agora efetuaremos o tratamento de nossa TreeView, para que possamos exibir o ToolTip em nossos TreeNodes. Esse tratamento será realizado no evento MouseMove de nossa TreeView. |
Private Sub TreeView1_MouseMove(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles
trwToolTip.MouseMove Try "Recuperamos um TreeNode baseado na posição de nosso Mouse Dim trnMouse As TreeNode = trwToolTip.GetNodeAt(e.X, e.Y) "Caso realmente estejamos sobre um TreeNode If Not IsNothing(trnMouse) Then "Definimos a descrição do ToolTip, "baseado na Tag de nosso TreeNode ttpTrw.SetToolTip(Me .trwToolTip, trnMouse.Tag) "Exibimos o ToolTip ttpTrw.Active = True Else ttpTrw.Active = False End If Catch ex As Exception MsgBox(ex.ToString) End Try End Sub |
Feito isso basta compilarmos nossa aplicação e abrirmos nosso formulário. Posicione o ponteiro do Mouse sobre o TreeNode que possui o texto Grains/Cereals, o efeito será semelhante ao exibido na Figura 1. |
Figura 1. ToolTip exibido a partir de um TreeNode. |
Feito isso atingimos nosso objetivo. Espero que tenham gostado e que o artigo possa ser útil. |
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET