ciao a tutti ho un problema, presumo di logica in vb net..
lo scopo è questo:
ho una datagridview con 16 colonne. Tutte le colonne sono ordinabili orizzontalmente dall'utente . io vorrei mantenere l'ordine tra una esecuzione e l'altra del programma.
quindi ho pensato..
all'uscita della form eseguo una funzione che mi carica in un my.setting stringa l'ordine scelto per le colonne..
per esempio: 0,1,3,2,4 ==> questo vuol dire che la colonna 0 è la prima a essere visualizzata, la colonna 1 la seconda, la colonna 2 la terza e la colonna 3 la quseconda e la colonna 4 la quinta.. ricordando che gli indici delle colonne partono da 0..
poi all'apertura della form analizzo la stringa e carico nell'attributo displayindex di tutte le colonne l'indice di visualizzazione salvato nel setting..
però va solo se faccio ordinamenti semplici.. tipo quello di esempio.. se invece faccio cose complicate.. io ho 16 colonne.. nn funziona correttamente..
vi posto il codice delle due funzioni.. se potete , per favore, aiutatemi..
codice:
Private Sub SalvaOrdineColonne()
My.Settings.OrdineColonne = ""
For i = 0 To RisultatoQuery.Columns.Count - 1
My.Settings.OrdineColonne = My.Settings.OrdineColonne & RisultatoQuery.Columns(i).DisplayIndex & ","
Next
My.Settings.OrdineColonne = My.Settings.OrdineColonne.Remove(My.Settings.OrdineColonne.LastIndexOf(","))
My.Settings.Save()
End Sub
codice:
Private Sub CaricaOrdineColonne()
If My.Settings.OrdineColonne = "" Then Exit Sub
Dim Index(16) As String
Index = Split(My.Settings.OrdineColonne, ",")
For i = 15 To 0 Step -1
RisultatoQuery.Columns(i).DisplayIndex = Index(i)
Next
End Sub