Pregunta

Tengo un requisito para ocultar la ContextMenuStrip cuando una bandera particular, no se ha establecido. Como no creo que podemos controlar explícitamente el mostrar / ocultar la tira de menú contextual, que decidí para atrapar el botón derecho del ratón sobre el control con el que está asociado el ContextMenuStrip. Es un control de usuario, por lo que intentó el manejo es MouseClick evento dentro de la cual puedo comprobar si el indicador está activado y si el botón es un botón de la derecha. Sin embargo, para mi asombro, el evento no se me disparen botón derecho del ratón, pero sólo para incendios clic izquierdo.

¿Hay algo de malo en mí o es cualquier solución?

de clic derecho es cada vez detectados, pregunta del título y la descripción ha cambiado

Después de hacer algunas investigaciones más, tengo el botón derecho del ratón para disparar, cuando manipula el Evento MOUSE_DOWN sobre el control. Sin embargo todavía estoy desorientado, como la forma para evitar explícitamente el ContextMenuStrip De Carga . Otro ser la pregunta, ¿por qué no detectó MouseClick botón Right Click?


solución actual

El registro del controlador de eventos

   userControl1.Control1.MouseDown += new MouseEventHandler(Control1_MouseDown);

 void Control1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right && flag == false)
        {
           userControl1.Control1.ContextMenuStrip = null;
        }
        else
        {
            userControl1.Control1.ContextMenuStrip = contextMenuStrip1;
        }

    }

esta es la solución actual que estoy haciendo. Pero, ¿cómo puedo cambiarlo en el evento de apertura de la ContextMenuStrip

¿Fue útil?

Solución

Su solución se producirá un error de todos modos cuando el menú contextual se invoca con la tecla de menú contextual (o lo que se llama) en el teclado. Usted puede utilizar el evento Opening para cancelar la apertura de un menú contextual.

Otros consejos

Hay un trabajo alrededor.

Permite decir un elemento de menú establece el indicador que controla el menú contextual de control de B.

En el evento Click para A, se establece b.ContextMenu = nada para apagarlo, y establece b.ContextMenu de nuevo al control del menú contextual para volver a activarlo.

En WinForms también está el caso Click -., Que se desencadena para el botón derecho del ratón

Si está utilizando WPF que debe tener eventos MouseRightButtonDown y MouseRightButtonUp.

Salida de la tabla de esta de MSDN página que enumera que controla provoca eventos cual clic. De manera significativa, Button, CheckBox, RadioButton y RichTextBox (y algunos otros) y no plantean evento el botón derecho del ratón.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top