Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Vb.NET] RichTextBox Funzione Cursore

    Sapete come fare in modo per riposizionare il cursore di testo alla fine di una riga?

    siccome ho ripreso il progetto dell'higlight

    mi serve in modo che invece di riposizionarsi all'inizio del testo colorato

    mi va alla fine

    per varvi capire vi allego un piccolo codice

    Codice PHP:
     Dim cerca "if"
            
    If LastValidIndex rtbCode.TextLength 1 Then
                Dim Index 
    rtbCode.Find("if"LastValidIndex 1RichTextBoxFinds.None)
                If 
    Index > -1 Then
                    LastValidIndex 
    Index
                    rtbCode
    .Select(Indexcerca.Length)
                    
    rtbCode.SelectionColor Color.Blue




                    rtbCode
    .DeselectAll()
                    
    rtbCode.AppendText("")




                Else

                
    End If
            Else
            
    End If 
    ------------------
    Non ho mai incontrato una persona così ignorante dal quale non abbia mai potuto imparare qualcosa...

  2. #2
    up

    nessuna risposta :master:

    vabbeh ho capito mostro un pò della mia classe così potete capire
    meglio

    Queste sono le stringhe o meglio il testo che deve cercare

    Codice PHP:
      Dim MyRow As DataRow
            Dim arrKeyWords
    () As StringstrKW As String

            Me
    .AcceptsTab True

            
    'Carica la colonna Word e Color
            Words.Columns.Add("Word")
            Words.PrimaryKey = New DataColumn() {Words.Columns(0)}
            Words.Columns.Add("Color")

            '
    Aggiunge le keywords del linguaggio SQL all'array
            arrKeyWords = New String() {"select", "insert", "delete", _
               "truncate", "from", "where", "into", "inner", "update", _
               "outer", "on", "is", "declare", "set", "use", "values", "as", _
               "order", "by", "drop", "view", "go", "trigger", "cube", _
               "binary", "varbinary", "image", "char", "varchar", "text", _
               "datetime", "smalldatetime", "decimal", "numeric", "float", _
               "real", "bigint", "int", "smallint", "tinyint", "money", _
               "smallmoney", "bit", "cursor", "timestamp", "uniqueidentifier", _
               "sql_variant", "table", "nchar", "nvarchar", "ntext", "left", _
               "right", "like", "and", "all", "in", "null", "join", "not", "or"}

            '
    Quindi le aggiunge una alla volta alla tabella con colore rosso
            
    For Each strKW In arrKeyWords
                MyRow 
    Words.NewRow()
                
    MyRow("Word") = strKW
                MyRow
    ("Color") = Color.LightCoral.Name
                Words
    .Rows.Add(MyRow)
            
    Next 

    e poi uso questo medoto

    Codice PHP:

     ByVal lStart 
    As Integer)
            
    Dim i As Integer 0
            Dim SelectionAt 
    As Integer Me.SelectionStart
            Dim MyRow 
    As DataRow
            Dim Line
    () As StringMyI As IntegerMyStr As String

            
    'Blocca il refresh
            LockWindowUpdate(Me.Handle.ToInt32)

            MyI = lStart

            If CaseSensitive Then
                Line = Split(Me.Lines(LineIndex).ToString, " ")
            Else
                Line = Split(Me.Lines(LineIndex).ToLower, " ")
            End If

            For Each MyStr In Line
                '
    Seleziona i primi MyStr.Length caratteri della lineaossia
                
    'la prima parola
                Me.SelectionStart = MyI
                Me.SelectionLength = MyStr.Length

                '
    Se la parola è contenuta in una delle righe
                
    If Words.Rows.Contains(MyStrThen
                    
    'Seleziona la riga
                    MyRow = Words.Rows.Find(MyStr)
                    '
    Quindi colora la parola prelevando il colore da tale 
                    
    'riga
                    If (Not CaseSensitive) Or _
                        (CaseSensitive And MyRow("Word") = MyStr) Then
                        Me.SelectionColor = Color.FromName(MyRow("Color"))
                    End If
                Else
                    '
    Altrimenti lascia il testo in nero
                    Me
    .SelectionColor Color.Black
                End 
    If

                
    'Aumenta l'indice di un fattore pari alla lunghezza della 
                
    'parola
                '
    più uno (uno spazio)
                
    MyI += MyStr.Length 1
            Next

            
    'Ripristina la selezione
            Me.SelectionStart = SelectionAt
            Me.SelectionLength = 0
            '
    E il colore
            Me
    .SelectionColor Color.Black

            
    'Riprende il refresh
            LockWindowUpdate(0) 
    Con questo processo mi da diversi errore che non sono riuscito a risolvere
    quindi avevo deciso di unsare delle istruzioni molto + semplici per evitare questi errori

    che sarebbe quello incima al topic.

    plase e importante potete aiutarmi?




    PS:
    avevo usato anche la libraria user32.dll per intercettare i tasti della tastiera
    e incollarli eventualmente scriveva ma anche questo medoto e riultato inefficacie :/
    ------------------
    Non ho mai incontrato una persona così ignorante dal quale non abbia mai potuto imparare qualcosa...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.