Oppure

Loading
25/07/10 15:22
VB.NET_Program_91
Salve a tutti... avrei un piccolo problema nel modificare il controllo syntaxRTB della guida di totem.
In pratica vorrei far visualizzare nel lato sinistro del controllo i numeri delle righe in successione come in tutti gli editor di testi, ma nn sono riuscito a capire il meccanismo.
L' unica cosa che sn riuscito a fare è mostrare il numeno delle righe in un controllo label in questo modo:
Dim punto As New Point()
punto.X = sorgente.GetLineFromCharIndex(sorgente.SelectionStart)
stato.Text = [String].Format("Riga: {0}", 1 + punto.X.ToString())

qualcuno mi può aiutare? grazie in anticipo!
Ultima modifica effettuata da VB.NET_Program_91 25/07/10 15:27
aaa
26/07/10 10:06
Il Totem
Non puoi modificare diettamente il controllo per fare questo. Non c'è alcuno spazio in un richtextbox che non rientri nell'area adibita al testo, e dato che SyntaxRTB deriva da tale controllo non è possibile modificarlo.
Puoi al massimo creare un ulteriore controllo utente che contenga un SyntaxRTB e una serie di label (o una sola label alta tutto il controllo, o una lista senza bordi e senza sfondo), quindi scrivere il numero di riga su ognuna di esse. Non è necessario crearne tante quante sono le righe totali, ma bastano in numero uguale alle righe visibili. L'altezza di ogni label (o l'altezza del font se usi un solo controllo) deve essere la stessa del font usato nella richtextbox.
aaa
26/07/10 10:11
VB.NET_Program_91
Mi hanno consigliato di usare le win api per rucavare le righe ma nn ho capito quali e come usarle... potresti fari un esempio? o chiedo troppo? :)
aaa
27/07/10 9:39
Il Totem
I metodi che ti servono sono già implementati dal codice di SyntaxRTB (se non li hai visti, sono i metodi FirstVisibleLin e LastVisibleLine).
aaa
28/07/10 13:49
VB.NET_Program_91
Grazie mille :) ma alla fine ho risolto utilizzando il componente linenumber_for_rtb
codeproject.com/KB/cpp/…
aaa