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

    Clipboard con più controlli

    Salve, nel mio programmino veorrei salvare nella clipboard un testo selezionato in uno qualsiasi dei controlli che sono presenti nel form, più precisamente quello che ha lo stato attivo.

    Qualcuno sa consigliarmi un segmento di codice per farlo?
    L'aquilone è simbolo che l'uomo vuole andare più su

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    linguaggio e versione?
    vanno sempre specificati nel titolo: leggi il regolamento
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Ciao L'Aquila.
    Una possibile soluzione potrebbe essere questa che ti posto qui sotto, ipotizzando un programma scritto in VB6.

    codice:
    Private Sub cmdCopia_Click()
       Clipboard.Clear
       Clipboard.SetText Text1.Text
       cmdCopia.Enabled = False
    End Sub
    La routine qui sopra prevede che alla pressione di un pulsante (cmdCopia) venga ripulita la Clipboard e inizializzata con il contenuto della casella di testo Text1.

    Per le tue esigenze puoi dunque abilitare il pulsante "cmdCopia" solo quando il controllo che ti interessa prende lo stato attivo gestendolo dall'evento "GotFocus". Il pulsante lo rendi "disabilitato" sin dall'inizio. Tradotto in codice:

    codice:
    Private Sub Form_Load()
       cmdCopia.Enabled = False
    End Sub
    
    Private Sub Text1_GotFocus()
       cmdCopia.Enabled = True
    End Sub
    Quando il pulsante diventa attivo, premendolo viene copiato nella Clipboard il contenuto della casella di testo.

    Fammi sapere.

    Giulio C. - Roma

  4. #4
    Chiedo perdono a MMarzia per aver omesso il linguaggio e la versione: VB6

    La tua idea è giusta e alquanto ovvia, ma dentro alla routine

    codice:
    Private Sub cmdCopia_Click()
       Clipboard.Clear
       Clipboard.SetText Text1.Text 
       cmdCopia.Enabled = False
    End Sub
    dovrei riuscire ad individuare l'oggetto tra i tanti che ha il focus altrimenti prendo il testo sempre dallo stesso oggetto.....
    L'aquilone è simbolo che l'uomo vuole andare più su

  5. #5
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Usa la proprietà del Form ActiveControl :

    codice:
    Private Sub cmdCopia_Click()
       Clipboard.Clear
       ' Controlla se il controllo ha la proprietà text
       ' altrimenti ti da un errore 
       If TypeOf Me.ActiveControl Is TextBox Or ComboBox Or ListBox Then
           Clipboard.SetText Me.ActiveControl.Text
           cmdCopia.Enabled = False
       End If
    End Sub
    Ciao,
    Ciao, Brainjar

  6. #6
    e se i controlli a cui mi riferisco hanno delle collection subordinate?! Ad es. il controllo TreeView ha la collection Nodes che a sua volta ha la proprietà Text...

    L'aquilone è simbolo che l'uomo vuole andare più su

  7. #7
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Adotti la tecnica medesima del controllo :
    (Approfitto per postare una correzione al codice precedente)
    codice:
    Private Sub cmdCopia_Click()
       Clipboard.Clear
       ' Controlla se il controllo ha la proprietà text
       ' altrimenti ti da un errore 
       If (TypeOf Me.ActiveControl Is TextBox) Or (TypeOf Me.ActiveControl Is ComboBox) Or (TypeOf Me.ActiveControl Is ListBox) Then
           Clipboard.SetText Me.ActiveControl.Text
           cmdCopia.Enabled = False
       End If
       If TypeOf Me.ActiveControl Is TreeView Then
           Dim oNodo As Node
           Set Nodo = TreeView1.SelectedItem
           If Not Nodo Is Nothing Then
               Clipboard.SetText Nodo.Text
               cmdCopia.Enabled = False
           End If
       End If
    Tieni presente, però, che così non ti funzionerà mai. Per il semplice
    motivo che con il click sul bottone PERDERAI il focus sul controllo.
    Devi trovarti un meccanismo che ti conservi il controllo attivo
    PRIMA di cliccare sul bottone.

    Ciao,
    Ciao, Brainjar

  8. #8
    Grazie!

    Cmq a me funziona perchè ho usato una toolbar invece che un pulsante che non fa perdere il focus all'oggetto...( o qualcosa del genere).

    Grazie!
    L'aquilone è simbolo che l'uomo vuole andare più su

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.