Control.DragEnter Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando un oggetto viene trascinato nei limiti del controllo.
public:
event System::Windows::Forms::DragEventHandler ^ DragEnter;
public event System.Windows.Forms.DragEventHandler DragEnter;
public event System.Windows.Forms.DragEventHandler? DragEnter;
member this.DragEnter : System.Windows.Forms.DragEventHandler
Public Custom Event DragEnter As DragEventHandler
Tipo evento
Esempio
Nell'esempio di codice seguente viene illustrata un'operazione di trascinamento della selezione tra due ListBox controlli. Nell'esempio viene chiamato il DoDragDrop metodo all'avvio dell'azione di trascinamento. L'azione di trascinamento inizia se il mouse è stato spostato più che SystemInformation.DragSize dalla posizione del mouse durante l'evento MouseDown . Il IndexFromPoint metodo viene utilizzato per determinare l'indice dell'elemento da trascinare durante l'evento MouseDown .
L'esempio illustra anche l'uso di cursori personalizzati per l'operazione di trascinamento della selezione. L'esempio richiede che nella directory dell'applicazione esistano due file 3dwarro.cur3dwno.curdi cursore, rispettivamente per i cursori di trascinamento e senza rilascio personalizzati. I cursori personalizzati verranno utilizzati se UseCustomCursorsCheckCheckBox è selezionato . I cursori personalizzati vengono impostati nel GiveFeedback gestore eventi.
Lo stato della tastiera viene valutato nel DragOver gestore eventi per il diritto ListBox, per determinare quale operazione di trascinamento si baserà sullo stato dei tasti MAIUSC, CTRL, ALT o CTRL+ALT. La posizione in cui ListBox si verifica l'eliminazione viene determinata anche durante l'evento DragOver . Se i dati da eliminare non sono , Stringl'oggetto DragEventArgs.Effect viene impostato su None in DragDropEffects. Infine, lo stato del rilascio viene visualizzato in DropLocationLabelLabel.
I dati da eliminare per il diritto ListBox sono determinati nel DragDrop gestore eventi e il String valore viene aggiunto nella posizione appropriata in ListBox. Se l'operazione di trascinamento si sposta all'esterno dei limiti del form, l'operazione di trascinamento della selezione viene annullata nel QueryContinueDrag gestore eventi.
Questo estratto di codice illustra l'uso dell'evento DragEnter . Vedere il DoDragDrop metodo per l'esempio di codice completo.
void ListDragTarget_DragEnter( Object^ /*sender*/, System::Windows::Forms::DragEventArgs^ /*e*/ )
{
// Reset the label text.
DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragEnter(object sender, DragEventArgs e)
{
// Reset the label text.
DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles ListDragTarget.DragEnter
' Reset the label text.
DropLocationLabel.Text = "None"
End Sub
Commenti
L'evento DragEnter viene generato quando l'utente trascina prima il cursore del mouse sul controllo durante un'operazione di trascinamento della selezione.
Le informazioni seguenti descrivono come e quando vengono generati eventi correlati alle operazioni di trascinamento della selezione.
Il DoDragDrop metodo determina il controllo sotto la posizione corrente del cursore. Controlla quindi se il controllo è una destinazione di rilascio valida.
Se il controllo è una destinazione di rilascio valida, l'evento GiveFeedback viene generato con l'effetto di trascinamento della selezione specificato. Per un elenco degli effetti di trascinamento della selezione, vedere l'enumerazione DragDropEffects .
Vengono rilevate modifiche alla posizione del cursore del mouse, allo stato della tastiera e al pulsante del mouse.
Se l'utente si sposta all'esterno di una finestra, viene generato l'evento DragLeave .
Se il mouse entra in un altro controllo, viene generato l'oggetto DragEnter per tale controllo.
Se il mouse si sposta ma rimane all'interno dello stesso controllo, viene generato l'evento DragOver .
Se si verifica una modifica nello stato della tastiera o del pulsante del mouse, l'evento QueryContinueDrag viene generato e determina se continuare il trascinamento, rilasciare i dati o annullare l'operazione in base al valore della Action proprietà dell'evento QueryContinueDragEventArgs.
Se il valore di DragAction è
Continue, l'evento DragOver viene generato per continuare l'operazione e l'evento GiveFeedback viene generato con il nuovo effetto in modo che sia possibile impostare il feedback visivo appropriato. Per un elenco di effetti di rilascio validi, vedere l'enumerazione DragDropEffects .Nota
Gli DragOver eventi e GiveFeedback vengono associati in modo che quando il mouse si sposta attraverso la destinazione di rilascio, all'utente viene assegnato il feedback più up-to-date sulla posizione del mouse.
Se il valore di è
Drop, il valore dell'effetto di rilascio viene restituito all'origine, in modo che l'applicazione di origine possa eseguire l'operazione appropriata sui dati di DragAction origine, ad esempio tagliare i dati se l'operazione è stata spostata.Se il valore di DragAction è
Cancel, viene generato l'evento DragLeave .Nota
Le X proprietà e Y di DragEventArgs sono in coordinate dello schermo, non coordinate client. La riga di codice visual C# seguente converte le proprietà in un client Point.
Point clientPoint = targetControl.PointToClient(new Point(de.X, de.Y));
Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.