Condividi tramite


ToolStripItem.QueryContinueDrag Evento

Definizione

Si verifica durante un'operazione di trascinamento della selezione e consente all'origine del trascinamento di determinare se l'operazione deve essere annullata.

public:
 event System::Windows::Forms::QueryContinueDragEventHandler ^ QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler? QueryContinueDrag;
[<System.ComponentModel.Browsable(false)>]
member this.QueryContinueDrag : System.Windows.Forms.QueryContinueDragEventHandler 
Public Custom Event QueryContinueDrag As QueryContinueDragEventHandler 

Tipo evento

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di questo membro. Nell'esempio un gestore eventi segnala l'occorrenza dell'evento QueryContinueDrag . Questo report consente di apprendere quando si verifica l'evento e può essere utile per il debug. Per segnalare più eventi o eventi che si verificano di frequente, provare a sostituire MessageBox.Show o Console.WriteLine accodare il messaggio a un oggetto multilinea TextBox.

Per eseguire il codice di esempio, incollarlo in un progetto contenente un'istanza di un tipo che eredita da ToolStripItem, ad esempio un ToolStripButton oggetto o ToolStripMenuItem. Assegnare quindi un nome all'istanza ToolStripItem1 e verificare che il gestore eventi sia associato all'evento QueryContinueDrag .

private void ToolStripItem1_QueryContinueDrag(Object sender, QueryContinueDragEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Action", e.Action );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "QueryContinueDrag Event" );
}
Private Sub ToolStripItem1_QueryContinueDrag(sender as Object, e as QueryContinueDragEventArgs) _ 
     Handles ToolStripItem1.QueryContinueDrag

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "KeyState", e.KeyState)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Action", e.Action)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"QueryContinueDrag Event")

End Sub

Commenti

L'evento QueryContinueDrag viene generato quando si verifica una modifica nello stato della tastiera o del pulsante del mouse durante un'operazione di trascinamento della selezione. L'evento QueryContinueDrag consente all'origine di trascinamento di determinare se l'operazione di trascinamento della selezione deve essere annullata.

Le note seguenti descrivono come e quando vengono generati eventi correlati alle operazioni di trascinamento della selezione.

Il DoDragDrop metodo determina l'elemento nella posizione corrente del cursore. Verifica quindi se l'elemento è una destinazione di rilascio valida.

Se l'elemento è 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 e rilascio, vedere l'enumerazione DragDropEffects.

Le modifiche apportate alla posizione del cursore del mouse, allo stato della tastiera e al pulsante del mouse vengono rilevate nel modo seguente:

  • Se l'utente si sposta al di fuori di una finestra, verrà generato un evento DragLeave.

  • Se il mouse immette un altro elemento, viene generato l'oggetto DragEnter per tale controllo.

  • Se il mouse si sposta ma rimane all'interno dello stesso elemento, 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 viene generato con il GiveFeedback nuovo effetto in modo che sia possibile impostare il feedback visivo appropriato. Per un elenco degli effetti di trascinamento validi, vedere l'enumerazione DragDropEffects.

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ù aggiornato sulla posizione del mouse, come indicato di seguito:

  • 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 .

Si applica a