hola buenas noches aqui les dejo mi duda con este codigo.
bueno estoy haciendo un editor de codigo porcierto lla lo e echo pero el problema esta en la sintaxis del codigo que escribo por ejp hola algunas 50 vese y el programa se buel be requete lento aqui les dejo el codigo que e echo hasta el momento.
OptionExplicitOn
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Data
Imports System.Text
Imports System.Windows.Forms
Imports System.Text.RegularExpressions
Imports System.IO
Public Class Form1
Dim Colores(2) As Color
PublicSubNew()
InitializeComponent()
'Label1.Font = New Font(RichTextBox1.Font.FontFamily, RichTextBox1.Font.Size + 1.019F)
EndSubPrivateSub updateNumberLabel()
'we get index of first visible char and number of first visible line
Dim pos AsNew Point(0, 0)
Dim firstIndex AsInteger = RichTextBox1.GetCharIndexFromPosition(pos)
Dim firstLine AsInteger = RichTextBox1.GetLineFromCharIndex(firstIndex)
'now we get index of last visible char and number of last visible line
pos.X = ClientRectangle.Width
pos.Y = ClientRectangle.Height
Dim lastIndex AsInteger = RichTextBox1.GetCharIndexFromPosition(pos)
Dim lastLine AsInteger = RichTextBox1.GetLineFromCharIndex(lastIndex)
'this is point position of last visible char, we'll use its Y value for calculating numberLabel size
pos = RichTextBox1.GetPositionFromCharIndex(lastIndex)
'finally, renumber label
Label1.Text = ""For i AsInteger = firstLine To lastLine + 1
Label1.Text += i + 1 & "" & vbLf & ""NextEndSubPrivateSub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
updateNumberLabel()
Label1.Refresh()
' RichTextBox1.Refresh()
RichTextBox1.Enabled = FalseDim Pos AsLongDim reg As Regex
Dim partes As MatchCollection
Dim selStart AsInteger = RichTextBox1.SelectionStart
Dim selLength AsInteger = RichTextBox1.SelectionLength
With RichTextBox1
Pos = .SelectionStart
CambiaColores(RichTextBox1)
.SelectionStart = Pos
.Focus()
' Buscamos todas la palabras reservadas
reg = New Regex("(while true do |char |for |if |end |then |else |System|system)")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.Blue
Next' Buscamos todas las cadenas
reg = New Regex("[""][^""]*[""]")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.Gray
Next' Buscamos todas la palabras reservadas
reg = New Regex("(1|2|3|4|5|6|7|8|9|0)")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.Orange
Next' Buscamos todas las cadenas
reg = New Regex("[(]|[)]")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.LightBlue
Next' Buscamos todas la palabras reservadas
reg = New Regex("(screen)")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.Purple
Next' Buscamos todas la palabras reservadas
reg = New Regex("(print|Print)")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.CornflowerBlue
Next' Buscamos todas la palabras reservadas
reg = New Regex("(new|New)")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.CornflowerBlue
Next' Buscamos todas la palabras reservadas
reg = New Regex("(=)")
partes = reg.Matches(RichTextBox1.Text)
For i AsInteger = 0 To partes.Count - 1
RichTextBox1.SelectionStart = partes(i).Index
RichTextBox1.SelectionLength = partes(i).Length
RichTextBox1.SelectionColor = Color.Red
Next
RichTextBox1.SelectionStart = selStart
RichTextBox1.SelectionLength = selLength
RichTextBox1.Enabled = True
RichTextBox1.Focus()
EndWithEndSubSub CambiaColores(ByVal RichTextBox1 As RichTextBox)
' RichTextBox1.Enabled = False
' Guardamos la selecciona actual para regresar
' todo a su sitio cuando terminemos
Dim selStart AsInteger = RichTextBox1.SelectionStart
Dim selLength AsInteger = RichTextBox1.SelectionLength
Dim F AsLongDim Contador AsLongWith RichTextBox1
.Enabled = FalseFor F = 1 To Len(.Text)
If Mid$(.Text, F, 2) = "--"Then
Contador = Contador + 1
If Contador > 2 Then Contador = 2
.SelectionStart = F - 1
.SelectionLength = 1
.SelectionColor = Colores(Contador)
ElseIf Mid$(.Text, F, 1) = vbLf Then
.SelectionStart = F - 1
.SelectionLength = 1
.SelectionColor = Colores(Contador)
Contador = Contador - 1
If Contador < 0 Then Contador = 0
Else
.SelectionStart = F - 1
.SelectionLength = 1
.SelectionColor = Colores(Contador)
EndIfNext F
EndWithEndSubPrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
updateNumberLabel()
Colores(0) = Color.Black
Colores(1) = Color.Green
Me.Show()
EndSubPrivateSub CortarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CortarToolStripMenuItem.Click
RichTextBox1.Cut()
EndSubPrivateSub CopiarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopiarToolStripMenuItem.Click
RichTextBox1.Copy()
EndSubPrivateSub PegarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PegarToolStripMenuItem.Click
RichTextBox1.Paste()
EndSubPrivateSub RichTextBox1_FontChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handles RichTextBox1.FontChanged
updateNumberLabel()
RichTextBox1_VScroll(Nothing, Nothing)
EndSubPrivateSub RichTextBox1_Resize(ByVal sender AsObject, ByVal e As System.EventArgs) Handles RichTextBox1.Resize
RichTextBox1_VScroll(Nothing, Nothing)
EndSubPrivateSub RichTextBox1_VScroll(ByVal sender AsObject, ByVal e As System.EventArgs) Handles RichTextBox1.VScroll
'move location of numberLabel for amount of pixels caused by scrollbar
Dim d AsInteger = RichTextBox1.GetPositionFromCharIndex(0).Y Mod (RichTextBox1.Font.Height + 1)
'Label1.Location = New Point(0, d)
updateNumberLabel()
EndSubEnd Class
este es mi codigo y no puedo hacer que sea mucho mas rapido porfabor ayudadme es para un proyecto de na uni.
Comentarios
ayuda con codigo en visual basic 2010
hola buenas noches aqui les dejo mi duda con este codigo.
bueno estoy haciendo un editor de codigo porcierto lla lo e echo pero el problema esta en la sintaxis del codigo que escribo por ejp hola algunas 50 vese y el programa se buel be requete lento aqui les dejo el codigo que e echo hasta el momento.
este es mi codigo y no puedo hacer que sea mucho mas rapido porfabor ayudadme es para un proyecto de na uni.
luis