Ciao a tutti,
sto creando un'applicazione con Visual Basic 2005 Express. In questa applicazione è presente una RichtextBox nella quale si possa scrivere, salvare ciò che si è scritto (rtf) e aprire file precedentemete creati (rtf).
Nell'applicazione è presente inoltre un sistema che permette, alla chiusura del file, se ci sono modifiche di far apparire una finestrina che chiede se chiudere senza salvare.
Purtroppo ci sono 2 errori. Eccoli:
* per quanto riguarda la pop up alla chiusura, quando apro un file rtf precedentemente creato, anche se non modifico il testo, appare ancora il messaggio. Concretamente, cosa posso modificare per sistemarla?
* quando provo il mio programma (o in modalità debug o direttamente il file .exe che ho generato) e seleziono, per esempio, l'apertura di un documento (funzioni con dialog), e clicco su uno dei due pulsanti di scelta (per esempio Apri o Annulla) è necessario che clicchi 2 volte, infatti dopo aver cliccato una prima volta, la finestrina ri.appare e è necessario che clicchi nuovamente. Accade quando c'è una struttura nel codice, come nel sistema di apertura, ma anche nella pop up di chiusura. E' normale?
Allego qui sotto il codice della pop up alla chiusura e in seguito il codice riferito al sistema di apertura file, così magari mi dite come risolverlo e come sostituire il codice attuale.
Grazie
--------pop up chiusura-------
Dim BoolModified As Boolean = False
Private Sub RichTextBoxPrintCtrl1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBoxPrintCtrl1.TextChanged
BoolModified = True
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If BoolModified = True Then
Dim answer As Integer
answer = MessageBox.Show("Il documento non è stato salvato, uscire senza salvarlo?", "Documento non salvato", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If answer = Windows.Forms.DialogResult.No Then
e.Cancel = True ' Annulla la chiusura del Form
Exit Sub
Else
Application.Exit()
End If
Else
Application.Exit()
End If
End Sub
----------------
-------sistema apertura---
Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
If RichTextBoxPrintCtrl1.Modified Then
Dim answer As Integer
answer = MessageBox.Show("Il documento non è stato salvato, continuare senza salvarlo?", "Documento non salvato", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If answer = Windows.Forms.DialogResult.No Then
Exit Sub
Else
OpenFile()
End If
Else
OpenFile()
End If
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Sub
End Sub
Private Sub OpenFile()
OpenFileDialog1.Title = "Apri documento..."
OpenFileDialog1.DefaultExt = "rtf"
OpenFileDialog1.Filter = "Rich Text Files|*.rtf|All Files|*.*"
OpenFileDialog1.FilterIndex = 1
OpenFileDialog1.FileName = ""
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Sub
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName = "" Then Exit Sub
Dim strExt As String
strExt = System.IO.Path.GetExtension(OpenFileDialog1.FileNa me)
strExt = strExt.ToUpper()
Select Case strExt
Case ".RTF"
RichTextBoxPrintCtrl1.LoadFile(OpenFileDialog1.Fil eName, RichTextBoxStreamType.RichText)
Case Else
Dim txtReader As System.IO.StreamReader
txtReader = New System.IO.StreamReader(OpenFileDialog1.FileName)
RichTextBoxPrintCtrl1.Text = txtReader.ReadToEnd
txtReader.Close()
txtReader = Nothing
RichTextBoxPrintCtrl1.SelectionStart = 0
RichTextBoxPrintCtrl1.SelectionLength = 0
End Select
currentFile = OpenFileDialog1.FileName
RichTextBoxPrintCtrl1.Modified = False
Me.Text = "Editor - " & currentFile.ToString()
End Sub
-------