Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema radiobutton in groupbox (vb.net)
Forum - C# / VB.NET - Problema radiobutton in groupbox (vb.net)

Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 10:49
Giovedì, 05/03/2009
Salve a tutti sono nuovo e volevo dire che questo è proprio un bel forum,più volte ho risolto i miei problemi grazie a voi.Ora però non ho trovato soluzione in giro e allora mi sono deciso a registrarmi.Il mio problema come si legge dal titolo è riferito a un gruppo di radiobutton,io faccio così
Codice sorgente - presumibilmente VB.NET

  1. Private Sub radiobutton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radiobutton1.CheckedChanged
  2.         Form2.Show()
  3.     End Sub


e tutto funziona bene,ma nel momento in cui clicco su un altro radio button mi si apre il form ke richiedo e poi sotto anche quello precedente.Spero di essermi spiegato bene e che qualcuno possa aiutarmi.

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 11:32
Giovedì, 05/03/2009
il problema sta nel fatto che tu leghi il radio button in questione ad un metodo tramite l'evento CheckedChanged. Questo evento viene scatenato ogni qualvolta il radiobutton cambia di stato, cioè sia quando viene selezionato (Checked = True), pallino nero, sia quando viene deselezionato (Checked = False) perchè ne hai selezionato uno diverso.

Quindi per risolvere c'è un modo che sta nel collegare l'evento CheckeChanged di tutti i radiobutton ad un unico metodo e verificare se l'oggetto chiamante, ossia il parametro sender, è effettivamente selezionato. Questo perchè l'evento viene scatenato 2 volte, prima dall'oggetto che viene deselezionato e poi da quello che viene invece selezionato, ossia i 2 che cambiano di stato. Infine verificato che un oggetto chiamante è selezionato basta controllare quale sia l'oggetto chiamante ^^

Dalla teoria ora passiamo alla pratica :

Codice sorgente - presumibilmente VB.NET

  1. Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton5.CheckedChanged, RadioButton4.CheckedChanged, RadioButton3.CheckedChanged, RadioButton2.CheckedChanged
  2.         Dim tmp As RadioButton = sender
  3.  
  4.         If (tmp.Checked = True) Then
  5.             If (tmp.Name = RadioButton1.Name) Then
  6.                 'operazioni in caso radiobutton1 selezionato
  7.             ElseIf (tmp.Name = RadioButton2.Name) Then
  8.                 'operazioni in caso radiobutton2 selezionato
  9.             ElseIf (tmp.Name = RadioButton3.Name) Then
  10.                 'operazioni in caso radiobutton3 selezionato
  11.             ElseIf (tmp.Name = RadioButton4.Name) Then
  12.                 'operazioni in caso radiobutton4 selezionato
  13.             ElseIf (tmp.Name = RadioButton5.Name) Then
  14.                 'operazioni in caso radiobutton5 selezionato
  15.             End If
  16.         End If
  17.     End Sub



nell'esempio che ho appena mostrato RadioButton1_CheckedChanged è il metodo che gestisce l'evento. Il primo If verifica se l'oggetto è selezionato, mentre la serie di If-ElseIf successivi determinare quale oggetto ha invocato il metodo. Nell'esempio sono presenti 5 RadioButton, rispettivamente RadioButton1 ... RadioButton5, ho tenuto i name di default.

Spero di essere stato chiaro :k:

PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 14:41
Giovedì, 05/03/2009
Grazie...Provo e ti faccio sapere :asd:

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 14:46
Giovedì, 05/03/2009
:k:

PM Quote
Avatar
raf_lele (Normal User)
Newbie


Messaggi: 20
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 10:07
Venerdì, 06/03/2009
Grazie funziona a meraviglia

PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 12:47
Venerdì, 06/03/2009
Mi fa piacere :k:

Alla prossima ;)

PM Quote