di rispondere a questa parte della tua domanda:
Come faccio a eliminare la necessità di fare 2x clic sui pulsanti radio?
È possibile aggiungere il seguente gestore di eventi per l'evento Click di ciascuno dei tre componenti RadioButton (di cui le proprietà selezionati sono tenuti a Impostazioni applicazione) nel GroupBox:
Private Sub RadioButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tomRadioButton.Click, dickRadioButton.Click, harryRadioButton.Click
If sender.Checked = False Then
sender.Checked = True
End If
End Sub
funziona, anche anche se ci vuole un mezzo secondo prima che un Controllo Radio incontrollato venga controllato dopo aver fatto clic su di esso.
Il motivo per il problema è stato spiegato due anni fa (nel 2008) nella sezione 5 del post Surviving WinForms Databinding sul blog Turbulent Intelect (Grazie, ohadsc, per il link):
Regola 5 : non legarsi a cliccabili pulsanti di scelta
so quanto grande sarebbe se si può solo vincolare il proprio mazzo di Radio pulsanti per una proprietà enum. Io davvero faccio il . Pensi che stai solo andando a collegando alcuni eventi Format e Parse per tradurre di nuovo al tuo enum, e tutto andrà bene. Sarebbe così dannatamente conveniente , se effettivamente funzionasse. Ma il WinForms non è tagliato per questo. Per 3 versioni complete ora (o si tratta di versioni 3.5 ?), Questo è stato il caso. È a causa dell'ordine di evento, che non è qualcosa che MS può andare accendere senza causare migliaia di sviluppatori per ottenere davvero cheesed spento.
Il problema tratta veramente basso per l' fatto che a differenza di altri dati di controlli proprietà, la proprietà Checked di un pulsante radio non cambia in realtà fino messa a fuoco lascia il pulsante di scelta. E come con tutte le WinForms controlla la messa a fuoco in realtà non lasciare il pulsante di scelta fino a dopo attenzione è data alla un altro controllo, e in effetti non fino dopo l'evento Click del controllo appena focalizzato ha sparato. Il risultato di questa , in quanto riguarda radiofoniche pulsanti, è che se si tenta di associare a loro, le proprietà legate a vostra origine dati saranno effettivamente in ritardo stato visivo tuoi pulsanti di opzione da uno scatto . Se si dispone di due soli pulsanti della radio , l'origine dati sarà esattamente di fronte allo stato visibile, finché non si sceglie un altro posto che non attivare un'azione che riferimenti quelle dell'origine dati proprietà. Il che può rendere questo un bug davvero esasperante da rintracciare. Ho quasi pensato di avere le allucinazioni.
Ora, in tutta onestà, è possibile eseguire . Ma è il kludgiest kludge che si è mai schiacciato. Va bene, forse non è poi così male ... ma è un incasinamento di sicuro. Ci vuole un sacco di lavoro per qualcosa che dovrebbe davvero essere già disponibile. Da quanto posso dire, l'unico modo per risolvere questo problema senza rinunciare al meccanismo di associazione dati è quello di essenzialmente rendere il proprio controllo RadioButton , con un cambio di proprietà e fine evento che è effettivamente utile. È possibile scrivere uno da zero, o sottoclasse RadioButton e sovrascrivere tutta la logica eventi con la gestione personalizzata del messaggio .
Grazie! Questo mi ha fatto andare nella giusta direzione. In vb.net è My.Settings anziché Properties.Settings.Default, ma a parte questo, funziona perfettamente. Ora ho solo un'impostazione e sto utilizzando la proprietà pubblica del modulo negli eventi Load e FormClosing. – CoderDennis
Sul mio computer non è necessario salvare le impostazioni alla chiusura. Sono salvati automaticamente. L'unico problema è che devo fare clic due volte. – systemovich