numeracion de lineas [vb.net]

Iniciado por CH4ØZ, 20 Enero 2011, 08:14 AM

0 Miembros y 1 Visitante están viendo este tema.

CH4ØZ

bueno vi varias veces q se pueden numerar las lineas (principalmente en programas referidos a la programacion).
bueno como yo estoy intentando hacer un editor de codigo, me gustaria saber como se hace.
algun lugar donde leer sobre esto o ideas. (preferentemente no codigo, solo quiero algo asi como un empujon).

gracias de antemano.
no me juzguen si no me conocen

[D4N93R]

Se me ocurre que lo pintes a mano, usando Drawing. Otra cosa podría ser utilizar un RichTextBox junto a otro, entonces uno sea la numeración y el otro sea en donde va a estar el código.

Solo se me ocurren esas dos :)

CH4ØZ

no me juzguen si no me conocen

seba123neo

busca en internet hay pila de ejemplos...aca tenes el mas facil:

Numbering lines of RichTextBox in .NET 2.0

y aca otro parecido pero maneja diferentes fuentes para el richtextbox:

Line Numbering of RichTextBox in .NET 2.0

LineNumbers for the RichTextBox

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

CH4ØZ

no me juzguen si no me conocen

CH4ØZ

bueno otra vez yo. ultimamente andube preguntando demasiado, pero creanme q no es x falta de voluntad.

bueno, con la funcion q me dio seba, cree una funcion para numerar las lineas, pero resulta q tenia un par de bugs. intente sacarselos pero no he podido hacerlo. mi funcion quedo asi:
Código (vbnet) [Seleccionar]

    Public Sub UpdateNumber(ByVal text As RichTextBox, Optional ByVal newline As Boolean = False)
        Try
            Main.Numerator.Font = text.Font
            Main.Numerator.Clear()
            Dim index As Integer, fLine As Integer, lLine As Integer
            Dim pos As New Point(0, 0)
            index = text.GetCharIndexFromPosition(pos)
            fLine = text.GetLineFromCharIndex(index)
            pos = Cursor.Position
            index = text.GetCharIndexFromPosition(pos)
            If newline = True Then
                lLine = text.GetLineFromCharIndex(index) + 1
            Else
                lLine = text.GetLineFromCharIndex(index)
            End If
            If text.Lines.Count() > 200 And lLine < text.Lines.Count - 1 Then lLine += 1
            For l = fLine To lLine
                If 100000 < l < 1000000 Then
                    Main.Numerator.Text &= l & "." & vbNewLine
                ElseIf 10000 < l < 100000 Then
                    Main.Numerator.Text &= " " & l & "." & vbNewLine
                ElseIf 1000 < l > 10000 Then
                    Main.Numerator.Text &= "  " & l & "." & vbNewLine
                ElseIf 100 < l < 1000 Then
                    Main.Numerator.Text &= "   " & l & "." & vbNewLine
                Else
                    Main.Numerator.Text &= "    " & l & "." & vbNewLine
                End If
            Next
        Catch ex As Exception

        End Try
    End Sub


la verdad es q lo q yo quiero es algo asi: http://solidfiles.com/d/a017/(es el programa el cual estoy intentando copiar pero con mejoras, si no lo quieren bajar de ese link y lo quieren buscar se llama pawno.)
no me juzguen si no me conocen