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 - RadioButton: attivare una scelta attraverso RadioButton
Forum - C# / VB.NET - RadioButton: attivare una scelta attraverso RadioButton

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
alpi39 (Normal User)
Pro


Messaggi: 63
Iscritto: 07/03/2008

Segnala al moderatore
Postato alle 17:40
Lunedì, 11/08/2008
Questo topic è stato chiuso dal moderatore

Credo sia inutile ripetere agli amici del Forum la mia quasi totale incompetenza nel programmare in VB.NET perché ho iniziato da poco ad addentrarmi nella programmazione con questo linguaggio.
Mi trovo ora nel dover utilizzare 6 RadioButton, ma non so come programmarli.
Allego a questo mio post il codice da me scritto per attivarne uno solo dei 6, purtroppo però, nessuno di questi assegna alla variabile "Periodico" ciò che dovrebbe assegnargli dopo averlo attivato.
Forse non è soltanto questo il codice, ma non so come intervenire.
Qualcuno può cortesemente aiutarmi?
Grazie infinite.
alpi39 (Alberto)

Codice sorgente - presumibilmente VB.NET

  1. Dim Periodico As String = ""
  2.  
  3.         Select Case Periodico
  4.             Case RadioButton1.Checked = True
  5.                 Periodico = "Bimestrale"
  6.             Case RadioButton2.Checked = True
  7.                 Periodico = "Mensile"
  8.             Case RadioButton3.Checked = True
  9.                 Periodico = "Quindicinale"
  10.             Case RadioButton4.Checked = True
  11.                 Periodico = "Quattordicinale"
  12.             Case RadioButton5.Checked = True
  13.                 Periodico = "Settimanale"
  14.             Case RadioButton6.Checked = True
  15.                 Periodico = "Numero Unico"
  16.         End Select


PM
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 23:17
Lunedì, 11/08/2008
Testo quotato

Postato originariamente da alpi39:

Codice sorgente - presumibilmente VB.NET

  1. Dim Periodico As String = ""
  2.  
  3.         Select Case Periodico
  4.             Case RadioButton1.Checked = True
  5.                 Periodico = "Bimestrale"
  6.             Case RadioButton2.Checked = True
  7.                 Periodico = "Mensile"
  8.             Case RadioButton3.Checked = True
  9.                 Periodico = "Quindicinale"
  10.             Case RadioButton4.Checked = True
  11.                 Periodico = "Quattordicinale"
  12.             Case RadioButton5.Checked = True
  13.                 Periodico = "Settimanale"
  14.             Case RadioButton6.Checked = True
  15.                 Periodico = "Numero Unico"
  16.         End Select




questo select case è assolutamente sbagliato. Devi agire sull'evento click di ogni radiobutton.
Codice sorgente - presumibilmente VB.NET

  1. Dim Periodico As String
  2.  
  3.     Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.Click
  4.         'RadioButton1.Checked = False credo non serva
  5.  
  6.         Periodico = "Mensile"
  7.     End Sub
  8.  
  9.     Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.Click
  10.         'RadioButton2.Checked = False credo non serva
  11.         Periodico = "Bimestrale"
  12.  
  13.     End Sub
  14.  
  15. 'e cosi per il resto dei radiobutton fino all'ultimo.



questo per ogni radiobutton che hai nella form, e assegni in ognuno il valore appropriato alla variabile Periodico.

Ultima modifica effettuata da Overflow il 11/08/2008 alle 23:21
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:14
Martedì, 12/08/2008
Ti ricordo che il Select Case è come un If multiplo, ma controlla sempre la variabile PERIODO. Quindi quello che gli hai detto è:

Codice sorgente - presumibilmente Plain Text

  1. -Se Periodo è (RadioButton1.Checked=True), fai questo...
  2. -Se Periodo è (RadioButton2.Checked=True), fai questo...


Dato che le espressioni contenenti operatori di comparazione come "=" restituiscono un valore booleano, stai trattanto Periodo, variabile stringa, come una variabile Boolean. Quindi non ti restituirà mai il valore corretto.

PM
Avatar
alpi39 (Normal User)
Pro


Messaggi: 63
Iscritto: 07/03/2008

Segnala al moderatore
Postato alle 15:20
Martedì, 12/08/2008
Ciao Overflow e ciao anche a Totem che è sempre pronto a dare una mano a chi ha bisogno di aiuto.
Ho fatto tutto come Overflow mi ha consigliato cioè:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.Click
  2.         Dim Periodico As String = ""
  3.         Periodico = "Bimestrale"
  4.     End Sub
  5.     Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.Click
  6.         Dim Periodico As String = ""
  7.         Periodico = "Mensile"
  8.     End Sub
  9.     Private Sub RadioButton3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton3.Click
  10.         Dim Periodico As String = ""
  11.         Periodico = "Quindicinale"
  12.     End Sub
  13.     Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.Click
  14.         Dim Periodico As String = ""
  15.         Periodico = "Quattordicinale"
  16.     End Sub
  17.     Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton5.Click
  18.         Dim Periodico As String = ""
  19.         Periodico = "Settimanale"
  20.     End Sub
  21.     Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton6.Click
  22.         Dim Periodico As String = ""
  23.         Periodico = "Numero Unico"
  24.     End Sub



ma non ottengo nessun risultato.
Ho provato, come puoi vedere, anche ad inserire Dim Periodico As String = "" in ogni Private Sub perché anche se lo mettevo in testa a tutte come consigliato da Overflow il risultato era o stesso ossia, non terminando il Debug e avvicinando il mouse alla parola Periodico  la risposta era sempre questa "Dim Periodico As String" la variabile Periodico non assumeva nessun valore.
D'altra parte Totem, prima di cimentarmi con questi RadioButtons, sono andato a consultare la tua guida dove fai vedere con un'illustrazone cos'è un RadioButton, ma non c'è nessun esempio di come attivarlo. Ho anche letto tutti i titoli di tutte le 47 pagine del Forum nella speranza di trovare un Topic che potesse aiutarmi, ma non ho trovato nulla.
Ora mi trovo allo stesso punto di prima.
Non so come far assumere alla variabile Periodico un valore.
Grazie comunque per il vostro intervento (il tuo e quello di Overflow)
alpi39 (Alberto)

Ultima modifica effettuata da alpi39 il 12/08/2008 alle 15:29
PM
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:39
Martedì, 12/08/2008
ma no... Periodico va dichiarata in generale all'inizio, in modo tale da essere visibile a tutto il modulo:
Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.     Dim Periodico As String 'va dichiarata qui all'inizio
  3.  
  4.     Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.Click
  5.         'RadioButton1.Checked = False
  6.         'imposti tutti gli altri radiobutton.checked =false
  7.         Periodico = "Mensile"
  8.         MsgBox(Periodico)
  9.     End Sub
  10.  
  11.     Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.Click
  12.         'RadioButton2.Checked = False
  13.         'imposti tutti gli altri radiobutton.checked =false
  14.         Periodico = "Bimestrale"
  15.         MsgBox(Periodico)
  16.     End Sub
  17.  
  18. End Class



con questo esempio potrai vedere il valore della variabile Periodico, quando abiliti un radiobutton(solo radiobutton1 e 2 in questo caso).

Ultima modifica effettuata da Overflow il 12/08/2008 alle 17:40
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:07
Mercoledì, 13/08/2008
Cerchi la cosa sbagliata: i radiobutton funzionano perfettamente, è il codice che ci metti dentro che è errato!
Overflow ti ha scritto chiaramente il codice, ma tu l'hai modificato. E' ovvio che se dichiari Periodico DENTRO la Sub, la variabile Periodico verrà DISTRUTTA subito dopo il click, e non otterrai niente. E' scritto chiaramente nel capitolo A18:
Testo quotato

La variabile B è dichiarata, come si vede, all'interno della procedura: ciò significa che esiste solamente nel corpo della procedura stessa e non è in alcun modo accessibile al di fuori di essa. Prova ne è il fatto che una volta eseguito il corpo del metodo, la variabile viene cancellata e liberata la parte di memoria che occupa. Variabili di questo tipo vengono definite locali o temporanee.


PM
Avatar
alpi39 (Normal User)
Pro


Messaggi: 63
Iscritto: 07/03/2008

Segnala al moderatore
Postato alle 17:27
Venerdì, 15/08/2008
Testo quotato

Postato originariamente da Overflow:

ma no... Periodico va dichiarata in generale all'inizio, in modo tale da essere visibile a tutto il modulo:

Public Class Form1
    Dim Periodico As String 'va dichiarata qui all'inizio

    Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.Click
        'RadioButton1.Checked = False
        'imposti tutti gli altri radiobutton.checked =false
        Periodico = "Mensile"
        MsgBox(Periodico)
    End Sub

    Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.Click
        'RadioButton2.Checked = False
        'imposti tutti gli altri radiobutton.checked =false
        Periodico = "Bimestrale"
        MsgBox(Periodico)
    End Sub

End Class


con questo esempio potrai vedere il valore della variabile Periodico, quando abiliti un radiobutton(solo radiobutton1 e 2 in questo caso).



Grazie, Overflow
Il tuo esempio mi ha chiarito le idee ed ho fatto tutto sulla base del tuo esempio e, ovviamente, tutto funziona alla perfezione.
Grazie di nuovo.

alpi39(Alberto)

PM
Avatar
alpi39 (Normal User)
Pro


Messaggi: 63
Iscritto: 07/03/2008

Segnala al moderatore
Postato alle 17:29
Venerdì, 15/08/2008
Testo quotato

Postato originariamente da Il Totem:

Cerchi la cosa sbagliata: i radiobutton funzionano perfettamente, è il codice che ci metti dentro che è errato!
Overflow ti ha scritto chiaramente il codice, ma tu l'hai modificato. E' ovvio che se dichiari Periodico DENTRO la Sub, la variabile Periodico verrà DISTRUTTA subito dopo il click, e non otterrai niente. E' scritto chiaramente nel capitolo A18:

Testo quotato

La variabile B è dichiarata, come si vede, all'interno della procedura: ciò significa che esiste solamente nel corpo della procedura stessa e non è in alcun modo accessibile al di fuori di essa. Prova ne è il fatto che una volta eseguito il corpo del metodo, la variabile viene cancellata e liberata la parte di memoria che occupa. Variabili di questo tipo vengono definite locali o temporanee.




Vedi, Totem ho dichiarato in più di una occasione la mia grande incompetenza nel linguaggio VB.NET ciononostante so e sapevo che in gruppo di radio bottoni soltanto uno sarà attivato (questo era ed è valido anche nel Future Basic che io ho sul mio computer Machintosh a Roma). Ciò che non conoscevo erano le istruzioni da inserire nel codice VB e grazie a Overflow, ora ho appreso anche questo.
D'altra parte prima di rivolgermi al Forum, ho cercato nella tua guida, qui su questo sito, e anche  sulla nuova guida da te redatta e messa su internet in formato Pdf (che ho salvato sul mio HD) per poterla consultare ogni qualvolta ne abbia bisogno. Però, come già ti ho scritto in precedenza, fatta eccezione per le spiegazioni di cosa è uno CheckBox o un RadioButton non ci sono istruzioni per come attivarli.
Adesso, ho cercato il "capitolo A18", senza risultato.
I capitoli sono tutti numerati con soli numeri.
Potresti, per favore, indicarmi la pagina dove poter trovare il "capitolo A18"?
Ti ringrazio comunque per il tuo intervento sempre pronto e sono certo di poterti leggere in un prossimo futuro perché sono molte le cose che debbo e vorrei imparare.
Ringrazio ancora una volta, e infinitamente  Overflow per l'aiuto accordatomi.
alpi39(Alberto)

Ultima modifica effettuata da alpi39 il 15/08/2008 alle 17:34
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:09
Venerdì, 15/08/2008
Vedi, non posso spiegare ed esemplificare ogni singolo membro di ogni singola classe di ogni namespace esistente. Devo selezionare le cose più importanti e foaclizzarmi su quelle, e limitarmi, invece, a descrivere le altre.

Se dessi un'occhiata al capitolo B5, vedresti che nell'elenco di proprietà di CheckBox c'è:
Testo quotato

Checked : indica se la checkbox è spuntata oppure no


seguita da un'immagine in cui si vede la CheckBox spuntata e il testo "Checked = True", e per RadioButton, poco più sotto: "Gode di tutte le proprietà di CheckBox".
Ma a me non sembra che tu non abbia capito come usare RadioButton (come pensi tu). A me sembra che tu non abbia capito Select Case, che è un altro discorso.

Infine, come puoi vedere alla pagina:
http://totem.altervista.org/guida/versione2/index.php
Ogni "numero", come dici tu, è accompagnato da un titolo e suddiviso in una delle cinque sezioni principali. Forse ti eri dimenticato di guardare sul mio sito.

Ultima modifica effettuata da Il Totem il 15/08/2008 alle 19:10
PM
Pagine: [ 1 2 ] Precedente | Prossimo