Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Inizio riga

    Qualcuno conosce il comando, o un API, per sapere se il caret di una textBox (multiline = true) è ad inizio riga?
    Grazie


  2. #2
    Ci sono delle APi che controllano queste cose, ma non ricordo i nomi.
    Potresti fare così:

    Iif(Mid(Text1.Text, Text1.Selstart -2, 2) = vbCrLf, True, False)

    Se questo Iif restituisce True, dovrebbe essere a inizio riga (non a inizio della textbox, però!).
    Non l'ho provato. Fammi sapere se funziona!
    Ciao,
    Berello
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  3. #3
    Ho un po' modificato la funzione...
    Metti in una finestra il controllo Text1 (.Multiline = True) e Command1. Copia questo codice, poi avvia il progetto e fai click sul pulsante.

    Private Sub Command1_Click()
    If Text1.SelStart > 1 Then
    MsgBox IIf(Mid(Text1.Text, Text1.SelStart - 1, 2) = vbCrLf, "Il cursore è a inizio riga", "Il cursore non è a inizio riga"), vbOKOnly + vbInformation, "Controllo eseguito"
    Else
    If Text1.SelStart = 0 Then MsgBox "Il cursore è a inizio riga", vbOKOnly + vbInformation, "Controllo eseguito"
    End If
    End Sub

    Poi DIMMI se funziona come volevi tu...
    Ciao,
    Berello
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  4. #4
    proverò e ti farò sapere
    grazie

  5. #5
    funziona a meraviglia
    grazie
    :bubu:

  6. #6
    Scusa berello, mi potresti spiegare questa parte di codice
    -------------------------------------------------------------
    Mid(Text1.Text, Text1.SelStart - 1, 2) = vbCrLf
    -------------------------------------------------------

    grazie ancora

  7. #7
    Preleva i due caratteri prima del cursore e verifica se sono uguali a vbCrLf (cioè 10 e 13, i caratteri usati per andare a capo).



    Mid(Text1.Text, Text1.SelStart - 1, 2)

    è una funzione per lavorare con le stringhe. La prima variabile passata è la stringa da elaborare, la seconda è il punto di partenza dal quale iniziare a leggere il testo (in questo caso Text1.SelStart indica l'inizio della selezione, cioè anche la posizione del cursore, sottraendo di 1 si va' al carattere precedente) e la terza indica la quantità di caratteri da prelevare (in questo caso 2, come vbCrLf).
    Se il cursore si trova a inizio riga, il carattere precedente al cursore sarà per forza un invio a capo... Il programma verifica solo questo!
    Spero di essermi spiegato...
    Scusa se ti ho risposto solo ora, ma ero partito...
    Ciao,
    Berello
    "Meglio un aiuto che 50 consigli"
    (tratto dalle barrette Elah)

  8. #8

  9. #9
    Utente di HTML.it L'avatar di grendy
    Registrato dal
    Aug 2003
    Messaggi
    338

    visualizzare riga e colonna?

    Scusate forse non c'entra nulla.

    A me servirebbe visualizzare in una label, il numero di riga e il numero di colonna, dove si trova il cursose in una rtftext (che non dovrebbe essere poi tanto diversa da una textbox con la proprietà multiline = true).

  10. #10
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Questo funziona con una TextBox:

    codice:
    Public Function RigaTextbox(TextBox As TextBox) As Integer
    Dim Dove As Integer, RighePrima As Integer
    Do
        RighePrima = RighePrima + 1
        Dove = InStr(Dove + 1, TextBox.Text, vbNewLine)
    Loop Until Dove >= TextBox.SelStart Or Dove = 0
    RigaTextbox = RighePrima
    End Function
    
    Public Function ColonnaTextBox(TextBox As TextBox) As Integer
    Dim Dove As Integer, Prima As Integer
    Do
        Prima = Dove
        Dove = InStr(Dove + 1, TextBox.Text, vbNewLine)
    Loop Until Dove >= TextBox.SelStart Or Dove = 0
    
    ColonnaTextBox = TextBox.SelStart - Prima
    End Function
    
    Private Sub Text1_Change()
    Label1 = "X = " & ColonnaTextBox(Text1) & "; Y = " & RigaTextbox(Text1)
    End Sub
    
    Private Sub Text1_Click()
    Label1 = "X = " & ColonnaTextBox(Text1) & "; Y = " & RigaTextbox(Text1)
    End Sub
    :metallica


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.