Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Numero righe syntaxRTB
Forum - C# / VB.NET - Numero righe syntaxRTB

Avatar
VB.NET_Program_91 (Member)
Pro


Messaggi: 93
Iscritto: 10/02/2008

Segnala al moderatore
Postato alle 17:22
Domenica, 25/07/2010
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:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim punto As New Point()
  2. punto.X = sorgente.GetLineFromCharIndex(sorgente.SelectionStart)
  3. 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 il 25/07/2010 alle 17:27
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 12:06
Lunedì, 26/07/2010
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.

PM Quote
Avatar
VB.NET_Program_91 (Member)
Pro


Messaggi: 93
Iscritto: 10/02/2008

Segnala al moderatore
Postato alle 12:11
Lunedì, 26/07/2010
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? :)

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:39
Martedì, 27/07/2010
I metodi che ti servono sono già implementati dal codice di SyntaxRTB (se non li hai visti, sono i metodi FirstVisibleLin e LastVisibleLine).

PM Quote
Avatar
VB.NET_Program_91 (Member)
Pro


Messaggi: 93
Iscritto: 10/02/2008

Segnala al moderatore
Postato alle 15:49
Mercoledì, 28/07/2010
Grazie mille :) ma alla fine ho risolto utilizzando il componente linenumber_for_rtb
http://www.codeproject.com/KB/cpp/linenumbers_for_rtb.aspx

PM Quote