Originariamente inviato da alka
Direi che vedere un po' di codice non sarebbe male...
il form ha solo questi 3 metodi
codice:
Private Sub frmsetup_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'
' GESTIONE MODELLI DI STAMPA
'
Dim search As New DirectoryInfo(Application.StartupPath & "\modelli") 'Effettuo la ricerca dei modelli
Dim files() As System.IO.FileInfo 'Faccio un vettore che conterrà la lista di file contenuti in una directory
Dim i As Integer
files = search.GetFiles("*.pwm") 'Elenco i file *.pwm della directory modelli
ReDim Preserve ins(UBound(files)) 'ridichiaro gli oggetti in base al numero di elementi del vettore
For i = 0 To UBound(files) 'Controllo tutti i modelli
Try
Dim pat As StreamReader = files(i).OpenText 'Apro il file .pwm per vederne il contenuto
Dim b, paramfile() As String 'Buffer e vettore per lo split dei dati
ins(i) = New Pattern 'Assegno un nuovo oggetto di tipo Pattern
Do
b = pat.ReadLine() 'Leggo la riga
If b = Nothing Then Exit Do 'Se la riga è vuota esce dal do
paramfile = b.Split(":") 'Splitto la stringa ad ogni ':'
Select Case paramfile(0) 'Controllo la prima parte della stringa divisa
Case "FILE" : ins(i).PatternFileName = paramfile(1) '
Case "LIMIT" : ins(i).PatternLenght = Val(paramfile(1)) ' Riempio l'oggetto Pattern con i dati letti dal file
Case "NAME" : ins(i).PatternName = paramfile(1)
End Select
Loop Until b = Nothing
ins(i).PatternConf = files(i).Name
pat.Close() 'kiudo il file
Catch ex As IOException 'Eccezione attivata nel caso in cui ci siano errori di lettura
If MsgBox(ex.Message, MsgBoxStyle.Exclamation + MsgBoxStyle.RetryCancel, "Errore durante la lettura del file") = MsgBoxResult.Retry Then i = i - 1
End Try
Next i
Dim j As Integer = UBound(ins)
Dim def As Integer = -1
If j = -1 Then 'controllo se NON ci siano modelli di stampa installati
MsgBox("Non è stato trovato alcun modello di stampa. Si consiglia di reinstallare il programma", MsgBoxStyle.Critical, "Errore critico")
Else
For i = 0 To j 'inserisco i modelli di stampa trovati
Dim defaultpattern As String = SetupIniFile.ReadValue("pattern", "default", "")
cmbpattern.Items.Add(ins(i).PatternName) 'inserisco un modello di stampa
If defaultpattern = ins(i).PatternConf Then def = i 'controllo se è il modello di stampa predefinito
Next
End If
If def <> -1 Then cmbpattern.SelectedIndex = def 'seleziono il modello di stampa impostato di default
'
' GESTIONE CONTABILITA'
'
cmbcase.SelectedIndex = Val(SetupIniFile.ReadValue("Contabilita", "AggiungiPreventivo", ""))
End Sub
Private Sub cmdAnnulla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnnulla.Click
Me.Close()
End Sub
Private Sub cmdOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOK.Click
SetupIniFile.WriteValue("pattern", "default", ins(cmbpattern.SelectedIndex).PatternConf) 'imposto il nuovo modello di stampa predefinito
SetupIniFile.WriteValue("Contabilita", "AggiungiPreventivo", cmbcase.SelectedIndex.ToString) 'imposto il nuovo caso per la contabilità
SetupIniFile.FlushToDisk() 'scrivo fisicamente il file ini sull'harddisk
Me.Close()
End Sub
ins è una var globale