Newsgroup: it.comp.lang.visual-basic
Titolo: Copa - Incolla

Ciao ragazzi,
sto iniziando da poco a studiare VB e nel scrivere i primi programmi mi sono
imbattuo nella necessità di scrivere il codice per il copia e incolla in una
RichTextBox.
Ai menu da cui si raggiungono i comandi ho associato il classico Ctrl+C e
Ctrl+V
Il codice è il seguente per i due eventi di click sui rispettivi menu:
Private Sub mnuModifica_Copia_Click()
      Clipboard.SetText RichTextBox1.SelRTF, vbCFRTF
End Sub
Private Sub mnuModifica_Incolla_Click()
    RichTextBox1.SelRTF = Clipboard.GetText(vbCFRTF)
End Sub
Ecco la questione:
Ho testato il codice su win98 ed è tutto OK, ma su XP e Me ecco cosa accade:
Se faccio il Ctrl+V il contenuto di ciò che ho copiato viene duplicato!!!!
Sembra come se il Ctrl+V sia intercettatto a livello di SO (suppongo da
profano) e duplichi l'evento.
Mi domando è sbagliato il codice o c'è altra spiegazione?
Vi ringrazio tutti

 ha scritto nel messaggio
news:Um%w8.13485$8D3.3...@news1.tin.it...


 ha scritto nel messaggio
news:MR4x8.77226$SR5.1...@twister1.libero.it...


Non so proprio come ovviare.
Innanzi tutto, si riporta il testo al quale si risponde _sopra_ la propria
risposta e non sotto, altrimenti diventa difficoltoso leggere il messaggio.
Per il tuo problema, a parte il fatto che non vedo perche' duplicare una
funzione gia' svolta in automatico dal RichEdit, il rimedio e' mettere a zero
il KeyCode e lo Shift.
Ad esempio:
Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
    If ((Shift And vbCtrlMask) = vbCtrlMask) Then
        Select Case KeyCode
        Case vbKeyC
            Clipboard.SetText RichTextBox1.SelText, vbCFRTF
        Case vbKeyV
            RichTextBox1.SelText = Clipboard.GetText(vbCFRTF)
        End Select
    End If
    KeyCode = 0
    Shift = 0
End Sub
-- 
ciao, hal

 Mi domando è sbagliato il codice o c'è altra spiegazione?
Ctrl+C (=Ctrl+Ins) e Ctrl+V (=Shift+Ins) attivaziono funzioni del sistema
operativo (suppongo anche in XP). Se tu fai le stesse cose, la prima passa
perchè non fai altro che ricoprire quello che il SO ha già salvato, ma la
seconda, giustamente, ripete l'effetto, quindi incolla un'altra volta.
Come ha già scritto Hal (riferendosi al RTBox, ma, credo che sia più
corretto riferirsi al SO, indipendentemente dall'oggetto), perchè fare
quello che è già previsto?

ciao, hal
Ciao Hal,
scusami per
aver scritto in testa, perdona la svista e grazie mille per le indicazioni.
Scusa ma sono proprio agli inizi.
Ma quello che vorrei capire, con
precedenti S.O. (vedi Win 98) questo non accedeva giusto?
Ma cos'è il
Keycode e lo shift, chiedo perdone per l'gnoranza!
Grazie ancora
--------------------------------
Inviato via 
http://usenet.iol.it
 

 ha
scritto: 




Grazie anche a te Lupo,
ma quello che vorrei capire è
perché sotto Win 98 funzionava tutto normalmente.... significa che Win 98
non prevede la gestione del copia e incolla a livello di S.O.?
Ciao e
Grazie


 non prevede la gestione del copia e incolla a livello di S.O.?
Io non ho XP. Quelle funzioni sono presenti nel SO da quando esiste Win
(forse da Win95), quindi ho qualche dubbio (a parità di istruzioni) sulla
tua affermazione. Quindi, se puoi, verifica le _attuali_ istruzioni sotto
Win98, giusto per capire.

Keycode e lo shift, chiedo perdone per l'gnoranza!
Sono i due argomenti che ricevi in Form_KeyDown.
-- 
ciao, hal

 ha scritto nel messaggio
news:xIxx8.83805$SR5.2...@twister1.libero.it...

Grazie per la tua disponibibila a dare spiegazioni, appen ho la possibilità
verifico, forse mi confondo io. Magari nell'implementazione che avevo fatto
su Win98 avevo dimentica to di attivare il Ctrl+V sul menu (?!).
Ciao e grazie