Compartilhar via


Gerenciar ponteiros do mouse

O ponteiro do mouse, que às vezes é chamado de cursor, é um bitmap que especifica um ponto de foco na tela para entrada do usuário com o mouse. Este artigo fornece uma visão geral do ponteiro do mouse nos Windows Forms e descreve algumas das maneiras de modificar e controlar o ponteiro do mouse.

Acessando o ponteiro do mouse

O ponteiro do mouse é representado pela classe Cursor, e cada Control tem uma propriedade Control.Cursor que especifica o ponteiro para aquele controle. A Cursor classe contém propriedades que descrevem o ponteiro, como as propriedades Position e HotSpot, e métodos que podem modificar a aparência do ponteiro, como os métodos Show, Hide e DrawStretched.

O exemplo a seguir oculta o cursor quando o cursor está sobre um botão:

private void button1_MouseEnter(object sender, EventArgs e) =>
    Cursor.Hide();

private void button1_MouseLeave(object sender, EventArgs e) =>
    Cursor.Show();
Private Sub Button1_MouseEnter(sender As Object, e As EventArgs) Handles Button1.MouseEnter
    Cursor.Hide()
End Sub

Private Sub Button1_MouseLeave(sender As Object, e As EventArgs) Handles Button1.MouseLeave
    Cursor.Show()
End Sub

Controlando o ponteiro do mouse

Às vezes, talvez você queira alterar a posição do mouse ou restringir o ponteiro do mouse a uma área específica. Você pode obter ou definir o local atual do mouse usando a Cursor.Position propriedade. Além disso, você pode limitar a área disponível ao ponteiro do mouse definindo a Clip propriedade. A área de clipe, por padrão, é a tela inteira.

O exemplo a seguir posiciona o ponteiro do mouse entre dois botões quando eles são clicados:

private void button1_Click(object sender, EventArgs e) =>
    Cursor.Position = PointToScreen(button2.Location);

private void button2_Click(object sender, EventArgs e) =>
    Cursor.Position = PointToScreen(button1.Location);
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    PointToScreen(Button2.Location)
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    PointToScreen(Button1.Location)
End Sub

Alterando o ponteiro do mouse

Alterar o ponteiro do mouse é uma maneira importante de fornecer comentários ao usuário. Por exemplo, o ponteiro do mouse pode ser modificado nos manipuladores dos eventos MouseEnter e MouseLeave para informar ao usuário que os cálculos estão ocorrendo e limitar a interação do usuário no controle. Às vezes, o ponteiro do mouse é alterado devido a eventos do sistema, como quando o aplicativo está envolvido em uma operação de arrastar e soltar.

A principal maneira de alterar o ponteiro do mouse é definindo a propriedade Control.Cursor ou DefaultCursor de um controle como um novo Cursor. Para obter exemplos de alteração do ponteiro do mouse, consulte o exemplo de código na Cursor classe. Além disso, a Cursors classe expõe um conjunto de Cursor objetos para muitos tipos diferentes de ponteiros, como um ponteiro que se assemelha a uma mão.

O exemplo a seguir altera o cursor do ponteiro do mouse para um botão em uma mão:

button2.Cursor = System.Windows.Forms.Cursors.Hand;
Button2.Cursor = System.Windows.Forms.Cursors.Hand

Para exibir o ponteiro de espera, que se assemelha a uma ampulheta, sempre que o ponteiro do mouse estiver no controle, use a UseWaitCursor propriedade da Control classe.

Consulte também