Creazione editor per textbox

di alexps81 il
5 risposte
Nel mio ufficio si utilizza un database realizzato da me con Access 2016.

Di solito per formattare del testo in una textbox utilizzo il formato RTF. Quindi vado a selezionare il testo che ho appena scritto e vado a modificare la sua formattazione grazie all'editor che mi viene proposto a schermo (allineamento, grassetto, corsivo, dimensioni, ecc...)

Siccome questa metodologia non tutti gli appartenenti del mio ufficio la conoscono (dato che non è così intuitiva), pensavo che sarebbe il massimo realizzare un vero e proprio editor così come si trova nei vari programmi di video scrittura.

Quindi mi chiedevo se si potessero disegnare i relativi button (G, C, S, allineamento dx, sx, centrale e magari colore del font). Dunque, ipotizzando di scrivere:

"Prova di scrittura" e "scrittura" vorrei che fosse scritto in grassetto+corsivo, farei:

"Prova di" (premo i button G e C) "scrittura"

Così risulterebbe più semplice per tutti quelli che andranno a lavorare al database.

Credete che sia possibile? I test che ho fatto risultano vani. Riesco solo a modificare tutto il testo scritto o in grassetto o in corsivo o sottolineato, ecc.... ma un mix non mi riesce.

5 Risposte

  • Tu sai come si traduce nel Testo reale l'inserimento del [Bold] ad esempio in una sezione di testo...?
    Inserendo i TAG del Bold...[<b>...tuo testo...</b>] oppure <strong>

    Cosa significa...? Che a parte inserire il Button dovrai rilevare quanto selezionato ed a quello applicare, se serve, i TAG, e quì viene il bello.

    Sembra facile... ma non è proprio così banale perchè purtroppo il controllo TextBox non restituisce il PlainText ... e purtroppo nel momento in cui la TextBox perde il Focus perde anche la Selezione, e di conseguenza i riferimenti del testo da Formattare...

    Sulla selezione, basta memorizzare la selezione prima di perdere il Focus..., suggerisco di usare l'evento Exit e rilevare [SelStart] e [SelLenght]... tuttavia serve fare MOLTA attenzione in quanto questi 2 parametri sono relavivi al PlainText, quindi se rilevi il contenuto della TextBox che invece contiene i TAGS... fai un disastro.

    Es:
    Testo=Pippo <---Questo è PlainText
    Testo=<b>P</b>ippo <--- questo è formattato

    Se selezioni la [o] finale perchè la vuoi Corsiva, rilevi SelStart=5 e SelLenght=1, ma TextBox restituisce [ <b>P</b>ippo ] e la posizione 5,1 è [<] da cui fai il disatro che dicevo.

    Ne consegue che devi crearti delle Routine di Strip dei TAGS, ma devi memorizzarli, perchè poi devi riapplicarli, altrimenti ne applichi solo 1 alla volta... senza tener conto che devi inibire la riapplicazione del Bold se è già applicato... se vuoi inserirne più di 1 per volta.

    Insomma, tutto è fattibile, ma serve una discreta padronanza tecnica... non sufficiente ma discreta.
  • Ok grazie. Molto esaustivo la tua risposta. Ho l'impressione che devo rinunciarci e lasciar così come sono le cose.

    C'è un modo, a questo punto, per attivare l'editor proposto a schermo attraverso un button senza dover selezionare sempre il testo?
  • alexps81 ha scritto:


    Ok grazie. Molto esaustivo la tua risposta. Ho l'impressione che devo rinunciarci e lasciar così come sono le cose.

    C'è un modo, a questo punto, per attivare l'editor proposto a schermo attraverso un button senza dover selezionare sempre il testo?
    Cosa formatti poi se non hai selezionato nulla...?
  • Ho notato che posso anche fare doppio click nella textbox e si apre l'editor per la formazione. Infatti posso scegliere magari il Grassetto e appena inizio a scrivere il testo si compila in grassetto. Quindi pensavo di far comparire l'editor al click fldi un button
  • Come preferisci... da codice, io sappia, non esiste modo per fare lo show della floating bar, che non è nemmeno tra le CommandBar Popup... quindi credo sia una finestra nativa di Access.
Devi accedere o registrarti per scrivere nel forum
5 risposte