Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Forum :: Programmazione.it :: Visual Basic :: VB2005 richtextbox apertura/chiusura
Scritto da Luca Mari a.k.a. lucag il 17-10-2007 ore 17:06
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.FileName)
strExt = strExt.ToUpper()

Select Case strExt
Case ".RTF"
RichTextBoxPrintCtrl1.LoadFile(OpenFileDialog1.FileName, 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


Precedente: documento XML richiamato tramite indirizzo http
Successiva: navigator 9
Commenti:  Primi  «  Meno recenti  «  31 - 32 di 32
Intervento di Luca Mari a.k.a. lucag del 14-11-2007 ore 19:19, Milano (MI)
Plebeo
Plebeo
(23 interventi)
Iscritto il 17-10-2007
Ah, sì, ho capito. Però, l'eventuale parametro, gli viene dato automaticamente quando si clicca sul file, ho va inpostato in qualche modo manualmente? E poi, questo parametro, si crea per caso quando si salva il file ed è legato ad esso, o è universale, e varia automaticamente da file a file?
Grazie!
Intervento di mrcod del 14-11-2007 ore 22:06
Cavaliere
Cavaliere

(103 interventi)
Iscritto il 03-04-2001
Citazione:
Ah, sì, ho capito. Però, l'eventuale parametro, gli viene dato automaticamente quando si clicca sul file, ho va inpostato in qualche modo manualmente? E poi, questo parametro, si crea per caso quando si salva il file ed è legato ad esso, o è universale, e varia automaticamente da file a file?
Grazie!

Il parametro viene aggiunto di default da windows, anche se credo che tu possa fornire una stringa da eseguire, utilizzando il simbolo %1 per indicare il nome del file (magari perchè vuoi fare un apri in sola lettura o che ne so io) ..

Il fiel quando viene creato, non viene associato a niente, è l'explorer che leggendo il registro sa con chi richiamarlo, è un'informazione esterna al file, basata semplicemente sull'estensione, e nulla di più.
Commenti:  Primi  «  Meno recenti  «  31 - 32 di 32
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.258 secondi.