men jeg skal kun have 1 værdi mine checkbox'es fungere præcis som radiobuttons:) der kan kun være én som er checked og derfor skal den bare returnere den. Jeg satte også {} så continue kommer ind under if sætningen.
Brug break: private int checkRecursive(Control elements) { int id = 0; foreach(Control checkbox in elements.Controls) { if(checkbox.GetType() == typeof(CheckBox)) { if(((CheckBox)checkbox).Checked) id = Convert.ToInt32(((CheckBox)checkbox).ID); break; } else { if(checkbox.HasControls() && id == 0) id = checkRecursive(checkbox); } } return id;
}
Ellers kan jeg ikke umiddelbart se nogen problemer.
Det var da en ikke særlig køn rekursiv metode:o) Den er heller ikke særlig læsevenlig. Det kan gøres på disse linjer!
private string checkRecursive(Control control) { if (control is CheckBox && ((CheckBox)control).Checked) return control.ID; else{ foreach (Control subControl in control.Controls){ string id = checkRecursive(subControl); if (id != null) return id; } } return null; }
Du må undskylde opstillingen af paranteser, men eksperten ændre på min formattering. Har desuden ændret lidt på navngivningen så det giver mere mening. Ps. metoden returnere en string som du selvfølgelig convertere til en int hos modtager. Jeg synes det er kønnere sådan der.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.