2012-09-13 32 views
6

Estoy diseñando una función de registro en la que el usuario puede seleccionar el evento que desea registrar. El botón de clic, estoy mostrando este tipo de menú: Context Menu on Button clickMostrar casilla de verificación para menú contextual Menú contextual de un botón

El usuario puede seleccionar varios eventos, así que necesito para mostrar "marca de verificación" delante de la opción seleccionada cuando el usuario hace clic en él.

No puedo encontrar ninguna opción como "Chequeado" o "CheckOnClick" como se menciona en this question.

He intentado con ContextMenu y ContextMenuStrips, pero no he podido conseguir las casillas de verificación. ¿Alguna sugerencia?

+0

Si mi respuesta le ayudó, ¿podría ser tan amable de aceptar como la respuesta correcta para futuros visitantes lo. Gracias. –

Respuesta

9

No veo ninguno de sus códigos, así que no sé cómo crear este menú. Pero en los términos más generales, así es como se accede a la propiedad Checked.

((ToolStripMenuItem)contextMenuStrip.Items[0]).Checked = true; //false; 
((ToolStripMenuItem)contextMenuStrip.Items[1]).Checked = true; //false; 
((ToolStripMenuItem)contextMenuStrip.Items[2]).Checked = true; //false; 

Puede asignarlos como verdadero o falso. Si ha llamado a su ToolStripItems, puede acceder a ellos directamente en lugar de ir a la matriz Items.

contextMenuStrip.event1.Checked = true; //false; 

Como se puede ver, estoy usando un ContextMenuStrip.

+0

¿Pero no se parece a la casilla de verificación en la interfaz de usuario? solo actuar como? –

+0

Agregaré que la propiedad ShowCheckMargin debe establecerse en verdadero, como dice la respuesta siguiente. – Russell

1

Mientras que puede usar:

((ToolStripMenuItem)contextMenuStrip.Items[0]).Checked = true; //false; 

esto puede ser peligroso porque en una fecha posterior es posible cambiar el orden de los elementos de menú y luego el código no coincidirán.

En cambio, en el diseñador clic en el menú entonces el artículo (como Evento1) para ver las propiedades y establecer el elemento modificadores a Pública o interna. Luego, en su código puede escribir el nombre del elemento y establecer el registro de entrada:

event1_ToolStripMenuItem.Checked = true; //false; 

Nota: no es necesario que escriba el nombre de la banda de menú Contet. Solo el nombre del elemento.

3

Para que esto funcione visualmente, debe asegurarse de que la propiedad "ShowCheckMargin" esté activada. De lo contrario, la propiedad ". Chequeado" silenciosamente no hará nada.

3

Cambie la propiedad CheckOnClick a verdadera

enter image description here

Cuestiones relacionadas