[Visual Basic 2005] Istruzioni per il pulsante "salva" x documenti for...

martedì 24 luglio 2007 - 14.17

platino Profilo | Junior Member

Salve a tutto il forum.
Ho bisogno di ottenere il codice per salvare il contenuto di una rich.textbox
in formato .doc tramite clic su un pulsante (mi servirebbe anke la finestra "salva", come quella di office".

Avrei bisogno anke del codice per stampare il contenuto della stessa rich.textbox su carta.+

Ringrazio anticipatamente chi saprà darmi una risposta.



_____platino_____

SSUPERPIPPO Profilo | Guru

>Salve a tutto il forum.

Ciao

>Ho bisogno di ottenere il codice per salvare il contenuto di una rich.textbox
>in formato .doc tramite clic su un pulsante (mi servirebbe anke la finestra "salva", come quella di office".

puoi usare la classe StreamWriter. Ecco un esempio

Imports System
Imports System.IO

Public Shared Sub Main()

' Genera un'istanza di StreamWriter per scrivere il testo su file

Using sw As StreamWriter = New StreamWriter("NomeFile.doc")

' Aggiunge il testo al file

sw.Write("Testo da inserire")
sw.WriteLine("Seconda riga di testo da inserire")
sw.Close()

End Using
End Sub

Per poter scegliere dove salvare il file, inserisci nella tua form un controllo SaveFileDialog
e al posto di NomeFile.doc inserisci il risultato generato da questo controllo.

>Avrei bisogno anke del codice per stampare il contenuto della stessa rich.textbox su carta.+

Questo te l'ho già spiegato nello scorso thread http://www.dotnethell.it/forum/messages.aspx?ThreadID=16948

>Ringrazio anticipatamente chi saprà darmi una risposta.

Di nulla, ciao

Alessandro

platino Profilo | Junior Member

Salve ssuperpippo.
Sapevo d poter contare su di te.
Purtroppo, però, a causa della mia ignoranza nn so cosa sia il risulato generato dal controllo.
Mi puoi fare un esempio su cosa devo scrivere nel codice del savefiledialog, per favore?




_____platino_____

SSUPERPIPPO Profilo | Guru

Allora...

1. Devi aggiungere un controllo SaveFileDialog al tuo form

2. Associa al tuo pulsante di salvataggio il seguente codice:

Me.SaveFileDialog1.AddExtension = True ' Aggiunge automaticamente l'estensione se non indicata
Me.SaveFileDialog1.DefaultExt = ".doc" ' Definisce l'estensione di default
Me.SaveFileDialog1.Filter = "Documento World|*.doc" ' Imposta le estensioni file previste

' Richiama la visualizzazione della finestra di dialogo

Dim StrPercorso As String

If Me.SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then ' Controlla che l'utente habbia premuto ok
StrPercorso = Me.SaveFileDialog1.FileName ' Memorizza nella variabile StrPercorso il nome del file da salvare
Else
Exit Sub
End If

' Ora puoi utilizzare questa variabile (StrPercorso) per impostare il percorso di salvataggio
' del tuo file .doc


Se hai bisogno di help sono a disposizione.

Ciao

Ale

platino Profilo | Junior Member

il risultato potrebbe essere + soddisfacente.
Ti spiego: QUnado clicco su salva, devo cliccarci due volte, perché prima inserisco il nome del file e poi lui mi ci aggiunge .doc; poi, quando vado a vedere se il file .doc è stato generato, il risultato è negativo.
Non c'è.



_____platino_____

SSUPERPIPPO Profilo | Guru

Mi puoi postare il codice completo?
Secondo me hai sbagliato qualcosa...

platino Profilo | Junior Member

Imports System
Imports System.IO
Imports System.Drawing


Public Class Form1



Public Shared Sub Main()

' Genera un'istanza di StreamWriter per scrivere il testo su file

Using sw As StreamWriter = New StreamWriter("NomeFile.doc")

' Aggiunge il testo al file

sw.Write("Testo da inserire")
sw.WriteLine("Seconda riga di testo da inserire")
sw.Close()

End Using
End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SaveFileDialog1.ShowDialog()
Me.SaveFileDialog1.AddExtension = True ' Aggiunge automaticamente l'estensione se non indicata
Me.SaveFileDialog1.DefaultExt = ".doc" ' Definisce l'estensione di default
Me.SaveFileDialog1.Filter = "Documento World|*.doc" ' Imposta le estensioni file previste

' Richiama la visualizzazione della finestra di dialogo

Dim StrPercorso As String

If Me.SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then ' Controlla che l'utente habbia premuto ok
StrPercorso = Me.SaveFileDialog1.FileName ' Memorizza nella variabile StrPercorso il nome del file da salvare
Else
Exit Sub
End If

End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.PrtStampa.Print() ' Avvia il processo di stampa
End Sub

Private Sub PrtStampa_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrtStampa.PrintPage
e.Graphics.DrawString(Me.RichTextBox1.Text, Me.Font, Brushes.Black, 60, 250)
End Sub
End Class



Ricordati:

In mezzo ci ho messo anke quello della stampa perché mi il proghramma mi serve sia per stampare ke per salvare documenti.



_____platino_____

SSUPERPIPPO Profilo | Guru

Ho individuato il problema

>Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

>SaveFileDialog1.ShowDialog() <=== Devi togliere questa istruzione!

Questa istruzione devi toglierla in quanto si ripete più avanti... il resto va bene! Ho fatto una prova da me e funziona che è una meraviglia.

>Me.SaveFileDialog1.AddExtension = True ' Aggiunge automaticamente l'estensione se non indicata
>Me.SaveFileDialog1.DefaultExt = ".doc" ' Definisce l'estensione di default
>Me.SaveFileDialog1.Filter = "Documento World|*.doc" ' Imposta le estensioni file previste

>' Richiama la visualizzazione della finestra di dialogo

>Dim StrPercorso As String

>If Me.SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then ' Controlla che l'utente habbia premuto ok
>StrPercorso = Me.SaveFileDialog1.FileName ' Memorizza nella variabile StrPercorso il nome del file da salvare
>Else
>Exit Sub
>End If

>End Sub


Ciao

Alessandro

platino Profilo | Junior Member

non funziona.
i risultati sono gli stessi.



_____platino_____

SSUPERPIPPO Profilo | Guru

Ecco il codice corretto, appena utilizzato su una mia applicazione di prova:

Imports System
Imports System.IO
Imports System.Drawing


Public Class Form1

Private Sub ScriviFile(ByVal DocName As String)

' Genera un'istanza di StreamWriter per scrivere il testo su file

Using sw As StreamWriter = New StreamWriter(DocName)

' Aggiunge il testo al file

sw.Write(Me.RichTextBox1.Text)
sw.Close()

End Using
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

SaveFileDialog1.AddExtension = True ' Aggiunge automaticamente l'estensione se non indicata
SaveFileDialog1.DefaultExt = ".doc" ' Definisce l'estensione di default
SaveFileDialog1.Filter = "Documento World|*.doc" ' Imposta le estensioni file previste

' Richiama la visualizzazione della finestra di dialogo

Dim StrPercorso As String

If Me.SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then ' Controlla che l'utente habbia premuto ok
StrPercorso = Me.SaveFileDialog1.FileName ' Memorizza nella variabile StrPercorso il nome del file da salvare
Else
Exit Sub
End If

Call ScriviFile(StrPercorso) '<== Richiama la funzione che scriverà il file nel percorso specificato

End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.PrtStampa.Print() ' Avvia il processo di stampa

End Sub

Private Sub PrtStampa_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrtStampa.PrintPage

e.Graphics.DrawString(Me.RichTextBox1.Text, Me.Font, Brushes.Black, 60, 250)

End Sub

End Class


Prova e fammi sapere

Ciao

Alessandro

platino Profilo | Junior Member

6 un grande!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


_____platino_____

SSUPERPIPPO Profilo | Guru

>6 un grande!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Troppo buono...

Chiudi il post, alla prossima. ciao

Ale

platino Profilo | Junior Member

il problema è stato risolto.
Ancora una cosa: vorrei ke quando clicco su un pulsante, mi venga automaticamente riportato su più righe diverse di una richtextbox il loro contenuto
come faccio?



_____platino_____

SSUPERPIPPO Profilo | Guru

>il problema è stato risolto.

mi fa piacere

>Ancora una cosa: vorrei ke quando clicco su un pulsante, mi venga automaticamente riportato su più righe diverse di una >richtextbox il loro contenuto
>come faccio?

Non so se ho capito bene, vorresti che premendo un pulsante il contenuto della tua RichTextBox venisse aggiunto alla stessa RichTextBox andando a capo?

platino Profilo | Junior Member

non esattamente.
Vorrei ke il contenuto di PIU' textbox (collegate ad un database) venissero aggiunte alla mia richtextbox.
Vorrei ke però ogni contenuto di textbox sia aggiunto alla richtextbox andando a capo.
Esempio:
ho 2 textbox (kiamate gigi e andrea). vorrei ke la textbox gigi andasse inh una riga e qualla di andrea andasse in un'altra.

Siccome ho la necessità di fare tutto questo sottoforma di lettera vorrei ke la textbox gigi andasse una cinquantina di spazi più avanti della propria riga e quella di andrea andasse una cinquantina di spazi nella propria.

ke ne dici? si puo' fare?


P.S.: ho letto il tuo nuovo thread (non so come si possa risolvere il tuo problema). però mi stupisce il fatto ke tu possa kiedere aiuto a qualcuno.



_____platino_____

platino Profilo | Junior Member

Ho risolto.



SSUPERPIPPO Profilo | Guru

>Ho risolto

Mi fà piacere che ce l'hai fatta da solo.
Scusami se non ti ho risposto ieri ma sono stato molto impegnato.

Alla prossima, ciao

Ale
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5