Ho un controllo personalizzato che è essenzialmente una tela da disegno e un programma che lo usa per modificare i file. Quando viene aperto un nuovo file, tuttavia, può accadere qualcosa di molto strano.Come si impedisce a un doppio clic su una finestra di dialogo Apri file di registrare un clic sul modulo sottostante?
Se il doppio utente fa clic sul file nella finestra di dialogo Apri file (di serie TOpenDialog
controllo) invece di selezionare un elemento e colpire ENTER
, la tela registra sotto un evento click e finisce per l'esecuzione di un'azione pareggio nella posizione di il cursore immediatamente dopo il caricamento è completo.
Ovviamente questo non è il comportamento previsto per questo. Ho notato prima che quando si fa doppio clic con il mouse, il messaggio doppio clic arriva prima del il secondo messaggio di clic. Penso che la finestra di dialogo potrebbe essere chiusa dal doppio clic, e poi il secondo messaggio di clic arriva e viene inviato a qualsiasi cosa con le coordinate appropriate ora che non c'è più.
C'è un modo in cui posso far smettere questo? Non riesco a dire al mio codice "dopo aver caricato, mangio il clic successivo", perché potrebbe essere stato aperto con il tasto "INVIO", e poi sarebbe mancato il primo clic legittimo. Qualcuno può pensare a un modo migliore per gestire questo? (Utilizzando Windows 7, nel caso in cui faccia la differenza.)
I Immagino tu voglia una soluzione per entrambe le finestre di dialogo, quella XP e quella Vista. –
Qualche possibilità di un esempio di codice duplicato? Non registra un clic su un modulo con un progetto vuoto. –
Lo vedo costantemente, su Windows 7. (Forse è diverso per sistemi operativi diversi?) –