Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Delegado QueryContinueDragEventHandler

Representa o método que manipulará o QueryContinueDrag evento de um Control.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)
public delegate void QueryContinueDragEventHandler(
	Object sender,
	QueryContinueDragEventArgs e
)

Parâmetros

sender
Tipo: System.Object
fonte de um evento.
e
Tipo: System.Windows.Forms.QueryContinueDragEventArgs
A QueryContinueDragEventArgs que contém os dados do evento.

Quando você cria um QueryContinueDragEventHandler delegado, você identifica o método que manipulará o evento. Para associar o evento com o manipulador de eventos, adicione uma instância do delegate ao evento. O manipulador de evento é chamado sempre que o evento ocorre, a menos que você remova o delegate. Para obter mais informações sobre tratamento eventos com delegados, consulte Eventos e representantes.

O exemplo a seguir demonstra uma operação de do tipo arrastar e soltar entre dois ListBox controles. O exemplo chama o DoDragDrop método quando a ação de arrastar é iniciado. A ação de arrastar inicia se o mouse foi movido mais de SystemInformation.DragSize do local de mouse durante o MouseDown evento. The IndexFromPoint método é usado para determinar o índice do item a arrastar durante o MouseDown evento.

O exemplo também demonstra o uso de cursores personalizados para a operação de do tipo arrastar e soltar. O exemplo assume que dois arquivos de cursor, 3dwarro.cur e 3dwno.cur, existe no diretório de aplicativo, para o personalizado arrastar e soltar não cursores, respectivamente. The custom cursors will be used if the UseCustomCursorsCheckCheckBox is checked. Cursores personalizados são conjunto no GiveFeedback manipulador de eventos.

O estado do teclado é avaliado no DragOver manipulador de eventos para a direita ListBox, para determinar o que a operação arrastar e será baseada no estado das teclas deslocar, CTRL, ALT ou as teclas CTRL+ALT. O local em que o ListBox onde ocorreria o descarte é também determinado durante o DragOver evento. Se os dados para soltar não um String, o DragEventArgs.Effect é definido como DragDropEffects.None. Finally, the status of the drop is displayed in the DropLocationLabelLabel.

Os dados para soltar para a direita ListBox determinado na DragDrop evento manipulador e o String valor é adicionado no local apropriado do ListBox. Se a operação de arrastar é movido para fora dos limites do formulário, a operação de do tipo arrastar e soltar foi cancelada no QueryContinueDrag manipulador de eventos.

Neste trecho de código demonstra o uso de QueryContinueDragEventHandler delegado com o QueryContinueDrag evento. Consulte o DoDragDrop método no exemplo de código completo.

privatevoid ListDragSource_QueryContinueDrag(object sender, System.Windows.Forms.QueryContinueDragEventArgs e) {
    // Cancel the drag if the mouse moves off the form.
    ListBox lb = sender as ListBox;

    if (lb != null) {

        Form f = lb.FindForm();

        // Cancel the drag if the mouse moves off the form. The screenOffset// takes into account any desktop bands that may be at the top or left// side of the screen.if (((Control.MousePosition.X - screenOffset.X) < f.DesktopBounds.Left) ||
            ((Control.MousePosition.X - screenOffset.X) > f.DesktopBounds.Right) ||
            ((Control.MousePosition.Y - screenOffset.Y) < f.DesktopBounds.Top) ||
            ((Control.MousePosition.Y - screenOffset.Y) > f.DesktopBounds.Bottom)) {

            e.Action = DragAction.Cancel;
        }
    }
}


private void listDragSource_QueryContinueDrag(Object sender, 
    System.Windows.Forms.QueryContinueDragEventArgs e)
{
    // Cancel the drag if the mouse moves off the form.
    ListBox lb = (ListBox)sender;

    if (lb != null) {
        Form f = lb.FindForm();
        // Cancel the drag if the mouse moves off the form. The 
        // screenOffset takes into account any desktop bands 
        // that may be at the top or left side of the screen.
        if (Control.get_MousePosition().get_X() - screenOffset.get_X() 
            < f.get_DesktopBounds().get_Left() 
            || Control.get_MousePosition().get_X() 
            - screenOffset.get_X() > f.get_DesktopBounds().get_Right() 
            || Control.get_MousePosition().get_Y() - screenOffset.get_Y() 
            < f.get_DesktopBounds().get_Top() 
            || Control.get_MousePosition().get_Y() - screenOffset.get_Y() 
            > f.get_DesktopBounds().get_Bottom()) {
            e.set_Action(DragAction.Cancel);
        }
    }
} //listDragSource_QueryContinueDrag


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0
Isso foi útil para você?
(1500 caracteres restantes)
Conteúdo da Comunidade Adicionar