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?
![]()
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
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
Ciao L'Aquila.
Una possibile soluzione potrebbe essere questa che ti posto qui sotto, ipotizzando un programma scritto in VB6.
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.codice:Private Sub cmdCopia_Click() Clipboard.Clear Clipboard.SetText Text1.Text cmdCopia.Enabled = False End Sub
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:
Quando il pulsante diventa attivo, premendolo viene copiato nella Clipboard il contenuto della casella di testo.codice:Private Sub Form_Load() cmdCopia.Enabled = False End Sub Private Sub Text1_GotFocus() cmdCopia.Enabled = True End Sub
Fammi sapere.
![]()
Giulio C. - Roma
Chiedo perdono a MMarzia per aver omesso il linguaggio e la versione: VB6
La tua idea è giusta e alquanto ovvia, ma dentro alla routine
dovrei riuscire ad individuare l'oggetto tra i tanti che ha il focus altrimenti prendo il testo sempre dallo stesso oggetto.....codice:Private Sub cmdCopia_Click() Clipboard.Clear Clipboard.SetText Text1.Text cmdCopia.Enabled = False End Sub
L'aquilone è simbolo che l'uomo vuole andare più su
Usa la proprietà del Form ActiveControl :
Ciao,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, Brainjar
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
Adotti la tecnica medesima del controllo :
(Approfitto per postare una correzione al codice precedente)
Tieni presente, però, che così non ti funzionerà mai. Per il semplicecodice: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
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
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