ToolStripItem.DragEnter Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando o usuário arrasta um item para a área de cliente desse item.
public:
event System::Windows::Forms::DragEventHandler ^ DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler DragEnter;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.DragEventHandler? DragEnter;
[<System.ComponentModel.Browsable(false)>]
member this.DragEnter : System.Windows.Forms.DragEventHandler
Public Custom Event DragEnter As DragEventHandler
Tipo de evento
- Atributos
Exemplos
O exemplo de código a seguir mostra como converter as X propriedades e Y em um cliente Point. Este exemplo de código faz parte de um exemplo maior fornecido para a ToolStripRenderer classe .
// This method defines the DragOver event behavior.
protected override void OnDragOver(DragEventArgs dea)
{
base.OnDragOver(dea);
// Get the ToolStripButton control
// at the given mouse position.
Point p = new Point(dea.X, dea.Y);
ToolStripButton item = this.GetItemAt(
this.PointToClient(p)) as ToolStripButton;
// If the ToolStripButton control is the empty cell,
// indicate that the move operation is valid.
if( item == this.emptyCellButton )
{
// Set the drag operation to indicate a valid move.
dea.Effect = DragDropEffects.Move;
}
}
' This method defines the DragOver event behavior.
Protected Overrides Sub OnDragOver(dea As DragEventArgs)
MyBase.OnDragOver(dea)
' Get the ToolStripButton control
' at the given mouse position.
Dim p As New Point(dea.X, dea.Y)
Dim item As ToolStripButton = CType(Me.GetItemAt(Me.PointToClient(p)), ToolStripButton)
' If the ToolStripButton control is the empty cell,
' indicate that the move operation is valid.
If item Is Me.emptyCellButton Then
' Set the drag operation to indicate a valid move.
dea.Effect = DragDropEffects.Move
End If
End Sub
Comentários
O DragEnter evento é gerado quando o usuário arrasta pela primeira vez o cursor do mouse sobre o item durante uma operação de arrastar e soltar.
Os comentários a seguir descrevem como e quando eventos relacionados a operações de arrastar e soltar são gerados.
O DoDragDrop método determina o item sob o local atual do cursor. Em seguida, ele verifica se o item é um destino de soltar válido.
Se o item for um destino de soltar válido, o GiveFeedback evento será gerado com o efeito de arrastar e soltar especificado. Para obter uma lista de efeitos de arrastar e soltar, consulte a DragDropEffects enumeração .
As alterações na posição do cursor do mouse, no estado do teclado e no estado do botão do mouse são controladas da seguinte maneira:
Se o usuário sair de uma janela, o DragLeave evento será gerado.
Se o mouse inserir outro item, o DragEnter para esse controle será gerado.
Se o mouse se mover, mas permanecer dentro do mesmo item, o DragOver evento será gerado.
Se houver uma alteração no estado do botão do teclado ou do mouse, o QueryContinueDrag evento será acionado e determinará se deseja continuar o arrastar, remover os dados ou cancelar a operação com base no valor da Action propriedade do QueryContinueDragEventArgsevento.
Se o valor de DragAction for Continue, o DragOver evento será gerado para continuar a operação e o GiveFeedback evento será gerado com o novo efeito para que os comentários visuais apropriados possam ser definidos. Para obter uma lista de efeitos suspensos válidos, consulte a DragDropEffects enumeração .
Os DragOver eventos e GiveFeedback são emparelhados para que, à medida que o mouse se move pelo destino de soltar, o usuário recebe os comentários mais atualizados sobre a posição do mouse, da seguinte maneira:
Se o valor de DragAction for Drop, o valor do efeito de queda será retornado à origem, para que o aplicativo de origem possa executar a operação apropriada nos dados de origem; por exemplo, recorte os dados se a operação for uma movimentação.
Se o valor de DragAction for Cancel, o DragLeave evento será gerado.
Observação
As X propriedades e Y do DragEventArgs estão nas coordenadas da tela, não nas coordenadas do cliente.
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.