VB.net 2005 formattare il teso di una casella multiline

martedì 15 settembre 2009 - 22.07

DomA Profilo | Expert

Ciao a tutti,
ho sviluppato un'applicazione gestionale con vb 2005 (con access) e vorrei renderla più accattivante, oltre che più funzionale, dando la possibilità all'utente di formattare il testo. La casella di testo è un campo Note (memo) e vorrei che funzionasse, giusto per fare un esempio, come il noto Fckeditor per le pagine web.
>>Mi spiego meglio. Io so come cambiare (ad esempio) il colore di tutto il testo di una textbox:

With ColorDialog1 .AnyColor = True If .ShowDialog() = Windows.Forms.DialogResult.OK Then TextBox1.ForeColor = .Color End If End With

>>I problemi sono:
i) come faccio a camiare solo la formattazione al testo evideziato dall'utente?
ìì) mentre in html si usano i tag in vb net il testo viene memorizzato nel campo memo come semplice testo e, quindi, quando vado a controllare i dati mi accorgo che non vi è nessuna formattazione.

Qualcuno potrebbe farmi un esempio o suggerirmi qualche guida?
Grazie in anticipo.


Domenico

Jeremy Profilo | Guru

Ciao Domenico.
Comincia utilizzando il controllo giusto.

Invece di TextBox, usa un RichTextBox .... e vedrai che tutto ti sembrerà più semplice di quanto pensi.

Facci sapere....
Ciao

DomA Profilo | Expert

Ciao Jeremy,
grazie per l'aiuto non avevo pensato alla RichTextbox.
...in effetti non ho mai utilizzato una RichTextbox...

>>Forse ciò mi potrebbe aiutare a risolver questi du problemini:

i) come faccio a cambiare solo la formattazione al testo evideziato dall'utente?
ìì) mentre in html si usano i tag in vb net il testo viene memorizzato nel campo memo come semplice testo e, quindi, quando vado a controllare i dati mi accorgo che non vi è nessuna formattazione.

>>Ripeto: in effetti non ho mai utilizzato una RichTextbox...

Grazie comunque,
iniziero a fare subito delle ricerche.

>> ho risolto il primo problema con SelectionColor e SelectionFont
esempio
With ColorDialog1 .AnyColor = True If .ShowDialog() = Windows.Forms.DialogResult.OK Then Me.RichTextBox1.SelectionColor = .Color 'Me.txtNote.ForeColor = .Color End If End With

Cambia solo il colore selezionato.
>> Rimane il problema della memorizzazione in campo memo su db Access 2003

Qualsiasi aiuto e ben accetto.


Ciao,
Domenico

luigidibiasi Profilo | Guru

>
>Cambia solo il colore selezionato.
>>> Rimane il problema della memorizzazione in campo memo su db Access 2003
>
>Qualsiasi aiuto e ben accetto.

Salva nel database il valore del membro .RTF del controllo... ad esempio se la tua casella si chiama
richtextbox1 nel dB salverai

richtexbox1.rtf che è comprensivo della formattazione del testo... la richtexbox prevede un membro .TEXT e un membro .RTF il primo senza e il secondo con formattazione...

per ricaricare il testo formattato imposti il membro richtextbox1.rtf = dati_letti_da_db


spero di essere stato chiaro vista l'ora :D
>
>
>Ciao,
>Domenico

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

Jeremy Profilo | Guru

Ciao
Ti allego questo piccolo progetto di esempio che ho fatto al volo e che dovrebbe aiutarti a chiarire le idee.

Facci sapere....
Ciao

Jeremy Profilo | Guru

O più semplicemente come ti ha consigliato Luigi.
Ciao

DomA Profilo | Expert

Fantastici, semplicemente fantastici.
Vorrei poter accettare tutte le risposte, ho scelto quella di Jeremy perchè mi ha indirizzato subito sulla strada giusta e perche mi ha fornito l'esempio.
>>Comunque voglio ringaziare entrambi.
A presto
Domenico
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5