Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30

    [VB] Sovrascrivere testo richtextbox

    Di nuovo ciao,
    eccomi qui per proporre un nuovo quesito.

    Ho una richtetxbox formattata da 2 caratteri e uno spazio:

    XX XX XX XX XX XX XX XX
    XX XX XX XX XX XX XX XX
    XX XX XX XX XX XX XX XX
    ..... etc

    nel caso in cui io voglia sovrascrivere i caratteri ho letto che non esiste nelle proprietà della richtextbox la modalità sovrascrittura, pertanto ho dovuto ricorrere alla seguente funzione che mi permette di abilitare il tasto INS

    Private Sub abilita_tasto_ins(KeyAscii As Integer) Dim ModalitaSovrascrittura As Boolean
    If ModalitaSovrascrittura = True And KeyAscii >= 32 And RichTextBox1.SelectionLength = 0 Then
    If Mid$(RichTextBox1.Text, RichTextBox1.SelectionStart + 1, 1) <> Chr(13) Then
    RichTextBox1.SelectionLength = 1
    End If
    End If



    e fin qui tutto bene, avvio il programma premo il tasto INS e funziona la sovrascrittura.

    Mi sarebbe piaciuto però che il tasto INS venisse premuto in automatico all'avvio del programma. Cercando un po' di documentazione in giro ho visto che si può fare tramite il comando sendkey.send, pertanto mi sono creata la seguente funzione:

    Private Sub richtextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles RichTextBox1.KeyPress
    SendKeys.Send("{INS}")
    End Sub

    Il problema però è che con questa funzione mi funziona solo in parte la sovrascrittura, ovvero la prima volta che tengo di sovrascrivere un valore non me lo fa sovrascrivere ma mi porta tutta la stringa avanti es, premendo il tasto A mi esce:

    AXX XX XX XX XX XX XX

    se premo invece una seconda volta il tasto A invece mi sovrascrive il successivo valore es:

    AAX XX XX XX XX XX XX

    In sostanza la sovrascrittura si alterna una volta no e una si ma non capisco il perchè.

    L'altra cosa che avrei voluto fare è che dove c'è lo spazio non si potesse sovrascrivere nulla, quindi far saltare la scrittura in quel punto, ma qui non ho nessuna idea.

    Help me

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Riporta meglio il codice perché non si caspisce ... Usa i tag CODE del codice ...

    Ad esempio, questa linea

    Dim ModalitaSovrascrittura As Boolean

    indica che usi una variabile che non viene modificata da nessuna parte ... che senso ha?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Scusate ho visto ora come si fa....

    Riporto di nuovo la discussione:

    Ho una richtetxbox formattata da 2 caratteri e uno spazio:

    XX XX XX XX XX XX XX XX
    XX XX XX XX XX XX XX XX
    XX XX XX XX XX XX XX XX
    ..... etc

    nel caso in cui io voglia sovrascrivere i caratteri ho letto che non esiste nelle proprietà della richtextbox la modalità sovrascrittura, pertanto ho dovuto ricorrere alla seguente funzione che mi permette di abilitare il tasto INS

    codice:
    Private Sub abilita_tasto_ins(KeyAscii As Integer) 
    Dim ModalitaSovrascrittura As Boolean
    If ModalitaSovrascrittura = True And KeyAscii >= 32 And RichTextBox1.SelectionLength = 0 Then
    If Mid$(RichTextBox1.Text, RichTextBox1.SelectionStart + 1, 1) <> Chr(13) Then
    RichTextBox1.SelectionLength = 1
    End If
    End If

    e fin qui tutto bene, avvio il programma premo il tasto INS e funziona la sovrascrittura.

    Mi sarebbe piaciuto però che il tasto INS venisse premuto in automatico all'avvio del programma. Cercando un po' di documentazione in giro ho visto che si può fare tramite il comando sendkey.send, pertanto mi sono creata la seguente funzione:

    codice:
    Private Sub richtextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles RichTextBox1.KeyPress
    SendKeys.Send("{INS}")
    End Sub
    Il problema però è che con questa funzione mi funziona solo in parte la sovrascrittura, ovvero la prima volta che tengo di sovrascrivere un valore non me lo fa sovrascrivere ma mi porta tutta la stringa avanti es, premendo il tasto A mi esce:

    AXX XX XX XX XX XX XX

    se premo invece una seconda volta il tasto A invece mi sovrascrive il successivo valore es:

    AAX XX XX XX XX XX XX

    In sostanza la sovrascrittura si alterna una volta no e una si ma non capisco il perchè.

    L'altra cosa che avrei voluto fare è che dove c'è lo spazio non si potesse sovrascrivere nulla, quindi far saltare la scrittura in quel punto, ma qui non ho nessuna idea.

    Help me
    Ultima modifica di Celeste'; 30-01-2015 a 00:16

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Avevo capito, ma non hai risposto alla mia domanda ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Quella funzione abilita il tasto INS della tastiera per poter effettuare la sovrascrittura del testo in una textbox, altrimenti il tasto INS non funzionerebbe in quanto le textbox non prevedono nelle loro proprietà la modalità sovrascrittura. Comunque anche lasciando stare quella funzione, come potrei fare in modo che il tasto INS venga premuto in automatico all'avvio dell'applicazione?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Io parlo di questa parte della If
    If ModalitaSovrascrittura = True

    e vorrei ancora capire quando diventa True quella variabile.

    Quel codice non ha molto senso, non potrà mai funzionare così come è scritto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Io so solo che quel codice funziona e mi abilita il tasto INS altrimenti non funzionerebbe. Comunque facendo anche a meno di quella funzione mi resta sempre da capire come fare premere in automatico all'avvio dell'app il tasto INS.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Io so solo che quel codice che hai mostrato non viene mai eseguito.

    Dato che non c'è modo di capire la questione, rinuncio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Riformulo la questione:

    Come posso fare affinchè all'avvio di un programma venga premuto in automatico il tasto "A".
    Credo che più semplice di così

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Usi la SendKeys.Send
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.