Nel mio articolo, The ArrowKeyNav Routine, ho presentato un Sub che puoi usare per sovrascrivere la gestione predefinita dei tasti freccia su e giù su un modulo continuo. Il problema con la routine come l'ho presentata è che devi chiamarla da ogni controllo in cui vuoi sovrascrivere la funzionalità del tasto freccia.
Ecco come potrebbe apparire in un modulo modulo:
Private Sub cbSupplierID_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub chkDiscontinued_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbID_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbListPrice_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbProductCode_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav vbKeyDown, Shift
End Sub
Private Sub tbProductName_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Ci sono un paio di modi per ridurre la quantità di codice standard di cui abbiamo bisogno in questa situazione, ma lo metteremo da parte ai fini di questo articolo. Quindi, per motivi di discussione, assumiamo che non ci sia modo di ridurre la quantità di codice. Dato questo vincolo, come possiamo aumentare la leggibilità del codice sopra?
Unire righe di codice con il carattere due punti
Possiamo unire più righe di codice usando il carattere due punti (:
).
viene utilizzato come elemento terminale della grammatica sintattica per denominare il token che funge da indicatore di "fine dichiarazione". In generale, la fine dell'istruzione è contrassegnata da un o da un carattere due punti .
Miglioramento della leggibilità unendo le righe
Questa tecnica è qualcosa che devi usare con cura. Ma, se usato con giudizio, può aumentare la leggibilità del tuo codice.
Nel codice di esempio sopra, ogni Sub chiama lo stesso codice esatto:
ArrowKeyNav KeyCode, Shift
In realtà, non è vero. Se guardi da vicino, vedrai che il tbProductCode_KeyDown()
la routine passa vbKeyDown
invece di KeyCode
come primo argomento.
Tuttavia, è facile non notare questa differenza utilizzando la formattazione VBA standard:
Fare sembrare sbagliato il codice sbagliato
Se uniamo le linee usando i due punti e regoliamo lo spazio bianco in modo che tutte le nostre chiamate a ArrowKeyNav
sono allineati a sinistra, quindi l'incoerenza che si fonde sopra risalta come un pollice dolente nel codice seguente:
Se visto nel contesto di normali funzioni e subroutine, il nostro blocco di codice standard si distingue chiaramente. Questa distinzione aiuta ad aumentare il rapporto segnale/rumore del nostro codice: