Attualmente ho un'applicazione C# winforms con Ctrl + C e Ctrl + V vincolata come scorciatoie da tastiera nel menu principale Modifica. Esiste un comportamento di copia/incolla personalizzato all'interno del codice che risponde a queste voci di menu, come ad esempio copiare e incollare righe in listview.Comportamento copia/incolla personalizzato con C# winforms mentre consente la modifica del testo copia/incolla
Tuttavia, il mio problema è che è possibile modificare il testo all'interno di una riga, e quando si esegue questa operazione, desidero Ctrl + C e Ctrl + V per non attivare il comando del menu di modifica e preferire la normale copia di testo /incolla.
Una cosa che ho provato è l'attivazione degli eventi BeforeLabelEdit e AfterLabelEdit e la disabilitazione/riattivazione manuale degli elementi del menu dall'interno. Sfortunatamente, sembra che una scorciatoia da tastiera su una voce di menu disabilitata attiva ancora l'evento menu_Popup, che è attualmente utilizzato per decidere quali voci di menu devono essere abilitate/disabilitate. (Ad esempio, "Incolla" è attivo solo se c'è un testo negli Appunti). Quindi, anche se disattivo la voce di menu, la scorciatoia da tastiera attiverà comunque l'evento Popup, che riabiliterà la voce di menu. (Si tratta di un bug?)
Non riesco a trovare alcun metodo per disabilitare temporaneamente una scorciatoia da tastiera di voci di menu senza memorizzare manualmente la vecchia scorciatoia, impostare il collegamento su null, quindi copiarlo quando devo riattivarlo (che si sente sporco).
Sicuramente ignorare il comportamento di copia/incolla o aggiungervi, è una cosa comune da fare? C'è un modello migliore da usare qui?
Ovveriding copia incolla suona come una cattiva idea per me. sono abituato a 'copia/incolla', funziona sempre allo stesso modo su tutte le app. la tua app mi confonderà. ma se insisti, perché non controllare la messa a fuoco? se lo stato attivo è sulla casella di testo, eseguire una copia incolla se non si esegue l'altra – Nahum
Il comportamento di copia/incolla personalizzato si occupa solo di copiare e incollare le righe quando non si modifica il testo.Voglio il comportamento predefinito di copia/incolla quando si modifica il testo. –
Cancellare il tasto di scelta rapida del menu è il modo più semplice. Altre alternative saranno "più sporche". –