ToolStripItem.DragEnter Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ocorre quando o utilizador arrasta um item para a área 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 seguinte exemplo de código mostra como converter as X propriedades e Y para 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
Observações
O DragEnter evento é ativado quando o utilizador arrasta o cursor do rato sobre o item durante uma operação de arrastar e largar.
As observações seguintes descrevem como e quando eventos relacionados com operações de arrastar e largar são levantados.
O DoDragDrop método determina o item sob a localização atual do cursor. Depois verifica se o item é um alvo válido para drop.
Se o item for um alvo válido de largada, o GiveFeedback evento é levantado com o efeito de arrastar e largar especificado. Para uma lista de efeitos de arrastar e largar, consulte a DragDropEffects enumeração.
As alterações na posição do cursor do rato, no estado do teclado e no estado dos botões do rato são acompanhadas da seguinte forma:
Se o utilizador sair de uma janela, o DragLeave evento é elevado.
Se o rato introduzir outro item, o DragEnter para esse controlo é elevado.
Se o rato se mover mas permanecer dentro do mesmo item, o DragOver evento é elevado.
Se houver uma alteração no estado do teclado ou do rato, o QueryContinueDrag evento é ativado e determina se continua a arrastar, se se largam os dados ou se cancelam a operação com base no valor Action da propriedade do QueryContinueDragEventArgsevento .
Se o valor de DragAction for , o Continue evento é elevado para continuar a operação e o DragOver evento é elevado com o novo efeito para que o feedback visual adequado GiveFeedbackpossa ser estabelecido. Para uma lista de efeitos de queda válidos, consulte a DragDropEffects enumeração.
Os DragOver eventos e GiveFeedback são emparelhados de modo que, à medida que o rato se move pelo alvo de queda, o utilizador receba o feedback de maior up-todata sobre a posição do rato, da seguinte forma:
Se o valor de DragAction for Drop, o valor do efeito de queda é devolvido à fonte, para que a aplicação fonte possa realizar a operação apropriada sobre os dados fonte; por exemplo, cortar os dados se a operação for uma mudança.
Se o valor de DragAction for Cancel, o DragLeave evento é elevado.
Note
As X propriedades e Y do DragEventArgs estão nas coordenadas do ecrã, não nas coordenadas do cliente.
Para obter mais informações sobre como manipular eventos, consulte Manipulando e gerando eventos.