kimzzz Skrevet 15. mars 2017 Del Skrevet 15. mars 2017 (endret) 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 16. mars 2017 av kimzzz Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå