Conferința vbstreets - vizualizați caseta de selectare a subiectului - grup

Trebuie să faceți un grup de trei casete de selectare (Red, Green, Blue), cum ar fi CheckBox (caseta de selectare). Pentru a face clic pe culoarea selectată a obiectului desenat.

Sunt nou la C #. A încercat să închidă verificarea CheckStateChanged și pe CheckChanged, daws inutile sunt îndepărtate, dar apăsate le pune doar a doua oară. Prompt.








Cod: Selectați toate void private checkBox3_EnabledChanged (expeditor obiect, EventArgs e)
dacă (this.checkBox1.Checked == true) this.checkBox1.Checked = false;
dacă (this.checkBox2.Checked == true) this.checkBox2.Checked = false;
> [Viper]. Utilizați eticheta CODE!

1. De ce nu folosiți doar RadioButtons?
2. EnabledChanged - acest lucru este greșit.
3. CheckStateChanged și CheckChanged lucrează nu numai la setarea drapelului, dar și la debifcare. Este încă necesară verificarea stării actuale.

Ura! O nouă versiune a Unreal Commander a fost lansată!

E ciudat. Dar codul tău nu a funcționat pentru mine. iar aceasta pentru fiecare CheckBox a mers. Mulțumiri pentru tine.

Cod: Selectați toate void private checkBox3_CheckedChanged (expeditor obiect, EventArgs e)
dacă (checkBox3! = null checkBox3.Checked)
checkBox1.Checked = false;
checkBox2.Checked = false;
>
> [Viper]. Utilizați eticheta CODE!

kosten a scris: Ciudat. Dar codul tău nu a funcționat pentru mine.








Codul meu din Form_Load procesează toate casetele de verificare situate direct pe formular. Dacă la tine se află într-un alt control, este necesar în loc să scrie. Sau adăugați în mod explicit aceste Căsuțe de verificare în listă și agățați-le pe handler.
În plus, a fost necesar să eliminați toate postrachichki dumneavoastră. Handlerele sunt atârnate de un lanț, astfel semnul + =. dar nu =.
Chiar ți-ai trădat cum ar trebui să funcționeze?

kosten a scris: și asta pentru fiecare CheckBox


Verificați că nulul este inutil. Cu excepția cazului în care acordați în mod explicit null.
De fapt, în codul meu este de asemenea inutil, dacă presupunem că manipulatorul poate fi apelat numai cu CheckBox ca expeditor.
Apropo, am scris în primul mesaj "Trebuie să verificăm încă starea actuală". - Asta a însemnat exact asta.

kosten a scris: Pentru multa multumire pentru tine.

PS: Utilizați eticheta [code] la urma urmei.

Ura! O nouă versiune a Unreal Commander a fost lansată!

Aici este posibil să se facă, că în cadrul fiecărui grup a fost posibil să se selecteze nu mai mult de un CheckBox: Cod: Selectați toate clasa publică parțială Form1. formular
public Form1 ()
InitializeComponent ();
>

private void Form1_Load (expeditor obiect, EventArgs e)
ModifyAllCheckBoxes (acest);
>

private void ModifyAllCheckBoxes (Control parent)
foreach (Control ctrl în parent.Controls)
CheckBox chk = ctrl ca CheckBox;

dacă (chk! = null)
chk.CheckedChanged + = Chk_CheckedChanged;

privat privat Chk_CheckedChanged (expeditor obiect, EventArgs e)
CheckBox cur = expeditor ca CheckBox;

dacă (cur! = null cur.Checked)
foreach (Control ctrl în cur.Parent.Controls)
dacă (! object.ReferenceEquals (ctrl, cur))
CheckBox chk = ctrl ca CheckBox;

Ura! O nouă versiune a Unreal Commander a fost lansată!







Trimiteți-le prietenilor: