Come determinare un controllo attivo?
-
domenica 25 dicembre 2011 11:36
Buongiorno e auguri di buon Natale a chiunque legga questo topic :) Volevo chiedere una cosa: ho un form nel quale voglio peremettere all'utente di cancellare comandi che egli ha appena creato, cliccando con il tasto destro del mouse sul controllo.
Ma... come si fa a dire di eliminare proprio il controllo che si è cliccato? Pensavo di utilizzare il metodo activecontrol per determinare quale bottone ha lo stato attivo ma evidentemente mi sbagliavo... Infatti mi dice che il controllo attivo è la splitcontainer che la ospita...
come posso allora irchiamare il pulsante che ho cliccato con uno dei 3 tasti del mouse???
Grazie a tutti ancora auguri!!!
Tutte le risposte
-
lunedì 26 dicembre 2011 09:43
Ciao 3rr3,
in che linguaggio? VB6? VBS, ?
in che senso eliminare il controllo ?
Forse è meglio che spieghi meglio il contesto di quello che vuoi implementare.
Se vuoi risalire all'ultimo pulsante premuto potresti crearti una variabile che contiene un riferimento all'ultimo pulsante premuto (se hai un array di command button è più semplice)
Se poi devi 'far premere' il command button da codice in VB6 basta scrivere cmdtest.value = true
Ciao
Renato Marzaro MVP Visual Basic
-
lunedì 26 dicembre 2011 10:47
Ok sarò più preciso:
sto lavorando con un progetto di Visual Basic.Net...
per eliminare il controllo intendo proprio toglierlo dalla finestra in qui è contenuto (ma per quello ci sono mezzo riuscito...) il mio problema è che non riesco a determinare il controllo attivo...
-
martedì 27 dicembre 2011 12:20
Ok sarò più preciso:
sto lavorando con un progetto di Visual Basic.Net...
per eliminare il controllo intendo proprio toglierlo dalla finestra in qui è contenuto (ma per quello ci sono mezzo riuscito...) il mio problema è che non riesco a determinare il controllo attivo...
Quello che chiedi non è chiaro.Vuoi sapere, ad esempio, avendo 3 Button su quale hai fatto click?
Crea un nuovo evento e imposta come evento Click per tutti e tre i Button l'evento ceato. Ad esempio:
Private Sub MyClick(sender As System.Object, e As System.EventArgs) Handles Button3.Click, Button2.Click, Button1.Click
MessageBox.Show(sender.Name)
End SubQui invece intercettiamo l'evento Enter per due Button ed una TextBox:
Private Sub MyEnter(sender As Object, e As System.EventArgs) Handles Button3.Enter, TextBox1.Enter, Button1.Enter
MessageBox.Show("Enter: " & sender.Name)
End SubTi ricordo che questo forum è per il Visual Basic fino alla versione 6.0, VBS, VBA. Il forum per il vb.net è qui:
http://social.msdn.microsoft.com/Forums/it-IT/visualbasicit/threads
Mauro Gamberini - Microsoft© MVP(Excel)
http://www.maurogsc.eu/ -
martedì 27 dicembre 2011 12:49
intanto ringrazio perchè non avevo pensato a questa opzione :) una cosa sola: i bottoni li creo da codice, tramite comandi della mia form... ma non è un problema basta aggiungere un addhandler e via... potrei usare questo metodo:)
-
martedì 27 dicembre 2011 13:37
intanto ringrazio perchè non avevo pensato a questa opzione :) una cosa sola: i bottoni li creo da codice, tramite comandi della mia form... ma non è un problema basta aggiungere un addhandler e via... potrei usare questo metodo:)
Altro modo:Dim Ctrl As Control = Me.ActiveControl
MessageBox.Show("Il controllo attivo è " & Ctrl.Name)
Mauro Gamberini - Microsoft© MVP(Excel)
http://www.maurogsc.eu/- Contrassegnato come risposta Irina TurcuMicrosoft Contingent Staff, Owner giovedì 29 dicembre 2011 11:28
-
martedì 27 dicembre 2011 17:31ma quindi scusa che cosa succede quando chiamo Form1.ActiveControl?
-
martedì 27 dicembre 2011 18:18
ma quindi scusa che cosa succede quando chiamo Form1.ActiveControl?
Se(se) ho capito, ti viene restituito il nome del controllo attivo. Però ripeto che non è chiaro quello che chiedi. In quale contesto avviene quanto scrivi?Esempio, due Form. Sulla Form1 un tot di controlli e sulla Form2 un Button che se schiacciato mi dice quale controllo è attivo sulla Form1.
Codice del Button che si trova sulla Form1 e che visualizza la Form2:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim frm2 = New Form2
frm2.Show()
End SubCodice del Button della Form2 che mi restituisce il nome del controllo attivo sulla Form1:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
MessageBox.Show(Form1.ActiveControl.Name)
End SubSeleziona un controllo diverso sulla Form1 e ripremi il Button sulla Form2.
Mauro Gamberini - Microsoft© MVP(Excel)
http://www.maurogsc.eu/ -
mercoledì 28 dicembre 2011 11:08Aspetta ora forse ci sono riuscito:) il mio problema era riconoscere il controllo attivo per poterlo modificare tramite una finestra propietà... scuso la mia poca chiarezza!!!
-
mercoledì 28 dicembre 2011 11:10
Aspetta ora forse ci sono riuscito:) il mio problema era riconoscere il controllo attivo per poterlo modificare tramite una finestra propietà... scuso la mia poca chiarezza!!!
Bene. Grazie per il cortese riscontro e buon lavoro.
Mauro Gamberini - Microsoft© MVP(Excel)
http://www.maurogsc.eu/

