ToolStripItem.DragEnter Händelse
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Inträffar när användaren drar ett objekt till klientområdet för det här objektet.
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
Händelsetyp
- Attribut
Exempel
Följande kodexempel visar hur du konverterar X egenskaperna och Y till en klient Point. Det här kodexemplet är en del av ett större exempel för ToolStripRenderer klassen.
// 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
Kommentarer
Händelsen DragEnter utlöses när användaren först drar musmarkören över objektet under en dra och släpp-åtgärd.
Följande kommentarer beskriver hur och när händelser som rör dra och släpp-åtgärder genereras.
Metoden DoDragDrop bestämmer objektet under den aktuella markörens plats. Den kontrollerar sedan om objektet är ett giltigt släppmål.
Om objektet är ett giltigt släppmål GiveFeedback aktiveras händelsen med dra och släpp-effekten angiven. En lista över dra och släpp-effekter finns i DragDropEffects uppräkningen.
Ändringar i musmarkörens position, tangentbordstillstånd och musknappstillstånd spåras på följande sätt:
Om användaren flyttar ut från ett fönster utlöses DragLeave händelsen.
Om musen anger ett annat objekt DragEnter aktiveras kontrollen för den.
Om musen flyttas men håller sig inom samma objekt utlöses DragOver händelsen.
Om det sker en ändring i tangentbords- eller musknappens tillstånd QueryContinueDrag aktiveras händelsen och avgör om du vill fortsätta dra, släppa data eller avbryta åtgärden baserat på värdet Action för egenskapen för händelsens QueryContinueDragEventArgs.
Om värdet DragAction för är ContinueDragOver genereras händelsen för att fortsätta åtgärden och GiveFeedback händelsen aktiveras med den nya effekten så att lämplig visuell feedback kan anges. En lista över giltiga släppeffekter finns i DragDropEffects uppräkningen.
Händelserna DragOver och GiveFeedback paras ihop så att när musen rör sig över släppmålet får användaren mest up-to-date feedback om musens position enligt följande:
Om värdet DragAction för är Dropreturneras drop-effektvärdet till källan, så att källprogrammet kan utföra lämplig åtgärd på källdata. Klipp till exempel ut data om åtgärden var en flytt.
Om värdet DragAction för är CancelDragLeave utlöses händelsen.
Note
Egenskaperna XY och DragEventArgs finns i skärmkoordinater, inte klientkoordinater.
Mer information om hur du hanterar händelser finns i Hantera och höja händelser.