none
Come fare per scrivere su un richtextbox all'incontrario? RRS feed

  • Domanda

  • Su un form ho due richtextbox e in uno devo scrivere un texto e nell'altro alla rovescia. Ho già tentato di usare le funzioni KeyPress,KeyDown e KeyUp anteponendo il carattere al testo per poi visualizzarlo.Tuttavia non si riesce a screvere in questo modo alla rovescia. Ho usato anche le richtextbox.Lines[], senza riuscirci.

    Questo lavoro mi serve per visualizzare alcune lettere in FONT ebraico e arabo che hanno la grafia invertita.

    Grazie a chi mi risponde.

    mercoledì 13 aprile 2011 14:45

Tutte le risposte

  • Puoi usare l'evento TextChanged di rtb1 scrivere:
    rtb2.Text = new string(rtb1.Text.Reverse().ToArray())

    Questo metodo non dovrebbe funzionare se usi la formattazione RTF.

    Se hai necessità di utilizzarla puoi usare un parser RTF e quindi fare la stessa cosa, ma invertendo solo il testo
    e non la formattazione.
    Matteo Migliore

    Blog http://blogs.ugidotnet.org/matteomigliore
    Twitter http://twitter.com/matteomigliore
    CodePlex http://hyperionsdk.codeplex.com
    mercoledì 13 aprile 2011 15:14
  • Sulla Rich text non so perché non l'ho mai usata, ma sulla textbox puoi impostare la grafia da destra a sinistra e il font ebraico o arabo. E se necessario farla multiline.

    per la rich text potrebbe essere che impostando la font giusta possa funzionare? In ogni caso la scrittura da destra a sinistra è solitamente una property.

    HTH


    Sabrina
    lunedì 18 aprile 2011 09:42
  •  

    Ho provato come mi ha suggerito Matteo, tuttavia non funziona.

    Sì: la scrittura invertita la si può ottenere impostando TextBx.Rightoleft = yes.

    Tuttavia in questo modo stranamente non vengono formattate correttamente i numeri e la punteggiatura, mentre va bene solo con le lettere.

    Un'altro problema è che non si può impostare il mirroring.L'unico modo per impostare il mirroring di un controllo è di farlo sul FORM che lo contiene e poi impostare hinerit su true. Ma questo non posso farlo perché uso nel form anche una textbox cche non può essere invertita.

    Per quanto riguarda l'uso delle textbx.Lines[] lo sto già facendo ed è necessario riorganizzare le linee perché altrimenti si scrivono le linee in ordine invertito.

    Per adesso sto cercando un'altra strada,ovvero di usare le stringhe e formattarle sulle Linse[].

    Ciao a tutti

    lunedì 18 aprile 2011 11:57