Ora devo modificare questo mammuth e velocizzarlo.
Ho in mano, salvato come una variabile, il sottomenu selezionato al momento del click per introdurre nella casella il nome.
Che ci faccio?
Il numero di indice del sottomenu corrisponde all'indice del nome nella matrice dei nomi, e corrisponderà all'indice della casella nella matrice delle caselle appartenenti a una determinata colonna.
Facendo valere questa corrispondenza, si può fare un calcolo limitato all'oggetto di interesse senza stare ogni volta a sfogliare tutto l'array di caselle perdendo moltissimo tempo.
Ho bisogno di lavorare un po' su un menu isolato per vedere se si può ricavare un indice di un sottomenu.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim sottomenu As New ToolStripMenuItem sottomenu.Text = "STRONZO" MenuStrip1.Items.Add(sottomenu) MenuStrip1.Items(0).BackColor = Color.Cyan End SubEcco, dunque devo salvare come variabile non il sottomenu come variabile oggetto ma il suo indice come variabile numerica (tipo Integer o altro).
Cambio il tipo di variabile...
Dim SelectedMenu As Integer 'indice del menu selezionato
Adesso provvediamo a salvare l'indice del sottomenu, e non più il sottomenu, in questa variabile.
Sub Trascrivi(ByVal sender As Object, ByVal e As EventArgs)
SelectedItem.Text = sender.text
SelectedMenu = mioMenu.Items.IndexOf(sender)
MsgBox(SelectedMenu)
CALCOLO()
Bene.Abbiamo memorizzato l'indice del sottomenu.
Adesso usiamolo. Facciamo una prova...
nomiGriglia.CelleDellaColonna(0)(SelectedMenu).BackColor = Color.Redinserita nella routine "Calcolo()".
E funziona!!!
La casella si colora di rosso immediatamente. Prima, con quel metodo rudimentale del dover sfogliare tutte le caselle, passava più di mezzo secondo.
Nessun commento:
Posta un commento