Esta documentación está archivada y no tiene mantenimiento.

GiveFeedbackEventHandler (Delegado)

Representa el método que controla el evento GiveFeedback de Control.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public delegate void GiveFeedbackEventHandler (
	Object sender,
	GiveFeedbackEventArgs e
)
/** @delegate */
public delegate void GiveFeedbackEventHandler (
	Object sender, 
	GiveFeedbackEventArgs e
)
No aplicable.

Parámetros

sender

Origen del evento.

e

GiveFeedbackEventArgs que contiene los datos de eventos.

Cuando se crea un delegado de GiveFeedbackEventHandler, se identifica el método que controlará el evento. Para asociar el evento a su controlador de eventos, agregue una instancia del delegado al evento. Siempre que se produzca el evento, se llamará a su controlador, a menos que se quite el delegado. Para obtener más información sobre cómo controlar eventos con delegados, vea Eventos y delegados.

En el siguiente ejemplo se muestra una operación de arrastrar y colocar entre dos controles ListBox. En el ejemplo se llama al método DoDragDrop cuando se inicia la acción de arrastrar. La acción de arrastrar se inicia si se ha movido el mouse más de SystemInformation.DragSize desde su ubicación durante el evento MouseDown. El método IndexFromPoint se utiliza para determinar el índice del elemento que se va a arrastrar durante el evento MouseDown.

En el ejemplo también se muestra la utilización de cursores personalizados para la operación de arrastrar y colocar. En este ejemplo, se supone que hay dos archivos de cursor (3dwarro.cur y 3dwno.cur) en el directorio de la aplicación para los cursores de arrastrar y colocar personalizados, respectivamente. Los cursores personalizados se utilizan si se ha activado UseCustomCursorsCheckCheckBox. Los cursores personalizados se establecen en el controlador de eventos GiveFeedback.

Se evalúa el estado del teclado en el controlador de eventos DragOver para averiguar si el control ListBox es correcto, a fin de determinar qué operación de arrastrar se realizará, en función del estado de las teclas MAYÚS, CTRL, ALT o CTRL+ALT. La ubicación de ListBox en la que se produciría la operación de colocar también se determina durante el evento DragOver. Si los datos que se van a colocar no son de tipo String, el valor de la propiedad DragEventArgs.Effect se establece en DragDropEffects.None. Por último, el estado de la operación de colocar se muestra en DropLocationLabelLabel.

Los datos que se colocan para el control ListBox correcto se determinan en el controlador de eventos DragDrop y el valor String se incluye en la ubicación apropiada del control ListBox. Si la operación de arrastrar se realiza fuera de los límites del formulario, la operación de arrastrar y colocar se cancelará en el controlador de eventos QueryContinueDrag.

En este fragmento de código se muestra la utilización del delegado GiveFeedbackEventHandler con el evento GiveFeedback. Para obtener el ejemplo completo del código, vea el método DoDragDrop.

private void ListDragSource_GiveFeedback(object sender, System.Windows.Forms.GiveFeedbackEventArgs e) 
{
    // Use custom cursors if the check box is checked.
    if (UseCustomCursorsCheck.Checked) {

        // Sets the custom cursor based upon the effect.
        e.UseDefaultCursors = false;
        if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
            Cursor.Current = MyNormalCursor;
        else 
            Cursor.Current = MyNoDropCursor;
    }

}

private void listDragSource_GiveFeedback(Object sender, 
    System.Windows.Forms.GiveFeedbackEventArgs e)
{
    // Use custom cursors if the check box is checked.
    if (useCustomCursorsCheck.get_Checked()) {
        // Sets the custom cursor based upon the effect.
        e.set_UseDefaultCursors(false);
        if ((e.get_Effect() & DragDropEffects.Move) 
            == DragDropEffects.Move) {
            get_Cursor().set_Current(myNormalCursor);
        }
        else {
            get_Cursor().set_Current(myNoDropCursor);
        }
    }
} //listDragSource_GiveFeedback

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
Mostrar: