Gå til innhold

Problemer med å binde data fra enum mot checkbox med samme navn


Anbefalte innlegg

Noen som vet hvordan jeg får dette til å virke ? eventuelt er det noe bedre måte å gjøre det på ?

[Flags]
public enum reset
{
   Idle = 0x100,
   Fuel = 0x400,
   Throttle = 0x2000,
   AC_State = 0x20,
   Max_speed = 0x40,
}


private void button2_Click(object sender, EventArgs e)
{
   var query = groupBox3.Controls.OfType<CheckBox>().Where(x => x.Checked == true); // her henter den ut alle checkbokser som er checked
   int data = 0;
   foreach (var q in query)
      {
         // box(q.Name.ToString()); // debug
         data = (data | reset.q.Name)); // hvordan får jeg bundet reset med samme navn som checkbox, ved å ta navn ifra checkbox`en
      }
}

Først henter den ut alle checkbox`er som er checked, så vil jeg OR`e alle disse til variablen data for å få en verdi tilslutt som innheholder bitmaskene til alle som er checked.

 

kan jo selvfølgelig bruke en if statement for hver checkbox, men har lyst til å se om det finnes andre måter å gjøre det på i tilfelle det er litt mere en 5 checkbokser neste gang.

 

Fikk det til

private void button2_Click(object sender, EventArgs e)
        {
            var query = groupBox3.Controls.OfType<CheckBox>().Where(x => x.Checked == true);
            int data = 0;
            foreach (var q in query)
            {
                //box(q.Name.ToString()); // debug
                data = data | (int)Enum.Parse(typeof(reset), q.Name); // var denne som var problemet
                box(data.ToString("X4")); // debug
            }
        }

Er vel dette som kalles reflections ? som noen mener ikke er bra, eller er jeg helt på viddene ?

Endret av kimzzz
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...