Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88

    [VB.NET]Inserire del testo sulla posizione del cursore

    Come da titolo, vorrei inserire del testo nella posizione del testo, in una textbox, nella posizione dove si trova il mouse.
    Io ho già provato in questa maniera:
    codice:
            Dim ToInsert As String = "[" & wmpControl.Ctlcontrols.currentPositionString & "]"
            Dim InsertPos As Integer = txtLyrics.SelectionStart
            txtLyrics.Text = txtLyrics.Text.Insert(InsertPos, ToInsert)
            txtLyrics.SelectionStart = InsertPos
    Ma purtroppo quando si supera la scrollbar, se si inserisce qualche cosa, torna tutto su e diventa un casino inserire, dato che il senso, come si capisce dalle linee del codice, è aggiungere all'inizio di ogni riga, la posizione corrente del windows media player incorporato nel form.
    Spero stavolta di non avere bisogno di indovini per farvi capire cosa sto dicendo :P, e se ovviamente avete delle idee migliori, fatemi sapere
    Grazie mille,
    IAL32

  2. #2
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    Se non sbaglio abbiamo già trattato questo stesso precisissimo argomento qualche discussione indietro (diciamo qualche decina di discussioni) ed aveva pure quasi lo stesso titolo. Prova a cercare meglio in questo forum....

  3. #3
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    Ho trovato la soluzione:
    codice:
            Dim ToInsert As String = "[" & wmpControl.Ctlcontrols.currentPositionString & "]"
            Dim InsertPos As Integer = txtLyrics.SelectionStart
            txtLyrics.Text = txtLyrics.Text.Insert(InsertPos, ToInsert)
            txtLyrics.Focus()
            txtLyrics.SelectionStart = InsertPos
            txtLyrics.SelectionLength = 0
            txtLyrics.ScrollToCaret()
    In pratica, prima inserisco all'interno del testo la stringa ToInsert, poi con .Focus() imposto lo stato attivo del controllo(notando che dopo che utlizzo .Insert lo stato attivo passa al form contente il controllo, in seguito imposto la selezione di partenza, cioè InsertPos(usato precedentemente per inserire nella posizione del cursore la stringa ToInsert), poi imposto la .SelectionLength a 0, cosiccè il controllo, dopo il focus, non mi selezioni tutto il testo a partire da InsertPos, poi con .ScrollToCaret() "scrollo" in basso il testo di modo tale che quando il testo è sotto le scrollbars, si possa vedere almeno l'ultima riga in cui è stato inserito il testo.

    Penso che questo codice possa essere utile a molta gente, ho pure aggiunto una descrizione dettagliata

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.