2012-09-13 8 views
6

Sto progettando una funzione di registrazione in cui l'utente può selezionare l'evento che desidera registrare. Su cliccando sul pulsante, sto mostrando tale tipo di menù: Context Menu on Button clickMostra casella di controllo Menu Menu o Menu contestuale di un pulsante

L'utente può selezionare più eventi così ho bisogno di mostrare "spunta" di fronte alla opzione selezionata quando l'utente fa clic su di esso.

Non riesco a trovare alcuna opzione come "Controllata" o "CheckOnClick" come indicato in this question.

Ho provato con ContextMenu e ContextMenuStrips ma non ho potuto ottenere Checkbox. Qualche suggerimento ??

+0

Se la mia risposta che ha assistito, per favore, essere così gentile da accettarlo come la risposta corretta per vistors futuri. Grazie. –

risposta

9

Non visualizzare alcun codice, quindi non so come si crea questo menu. Ma nei termini più generali, ecco come si accede alla proprietà Checked.

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

È possibile assegnare loro come vero o falso. Se hai assegnato un nome al numero ToolStripItems, puoi accedervi direttamente anziché accedere all'array Items.

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

Come potete vedere, sto usando un ContextMenuStrip.

+0

Ma non sembra una casella di controllo nell'interfaccia utente?! solo agire come? –

+0

Aggiungerò che la proprietà ShowCheckMargin deve essere impostata su true, come dice la risposta seguente. – Russell

1

Mentre si potrebbe usare:

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

questo può essere pericoloso perché in un secondo momento si potrebbe riordinare le voci di menu e quindi il codice non corrisponderanno.

Invece, nel progettista clic sul menu quindi la voce (come Event1) per vedere le proprietà e impostare la voce Modificatori a pubblica o interno. Poi nel codice è possibile digitare il nome della voce e impostare il controllo:

event1_ToolStripMenuItem.Checked = true; //false; 

Nota: non è necessario digitare il nome della barra di menu Contet. Solo il nome dell'oggetto.

3

Affinché questo funzioni visivamente, è necessario assicurarsi che la proprietà "ShowCheckMargin" sia attiva. Altrimenti la proprietà ".Checked" non farà silenziosamente nulla.

3

Modificare la proprietà CheckOnClick a Vero

enter image description here