È sicuro interrogare la mouseposizione calcolare le informazioni di hit in un gestore di eventi

StackOverflow https://stackoverflow.com/questions/5976473

  •  12-11-2019
  •  | 
  •  

Domanda

Sto usando Devexpress Grid Control (C#/. Net Winforms) e gestisce l'evento a doppio clic.

Per impostazione predefinita, la griglia spara l'evento quando si fa a doppio clic sull'intestazione della griglia e sulla riga dei dati.

Il gestore a doppio clic passa solo EventArgs, quindi non ci sono informazioni sulla posizione del mouse da utilizzare per calcolare le informazioni di hit su dove l'utente stava facendo clic nella griglia.

Per aggirare ciò, sto interrogando il controllo. MOUSEPOSIZIONE Valore, convertendolo in coordini della griglia e quindi calcolando le informazioni di hit.

Tutto questo sembra funzionare bene, ma c'è qualche pericolo nel query sulla mouse come questo durante un gestore di eventi?

Esempio di codice all'interno del gestore eventi

        // if the double click was fired outside a row then ignore it
        GridHitInfo gridHitInfo = GridView.CalcHitInfo(Grid.PointToClient(MousePosition));
        if (!gridHitInfo.InRow)
            return;
È stato utile?

Soluzione

Sì, funziona bene. Eventuali aggiornamenti a MousePosition accadere in modo sincrono (cioè non cambiano durante l'invocazione del tuo gestore).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top