PDA

View Full Version : شمارش تعداد comboboxهایی که selectedIndex بالاتر از 0 دارند



@liReza11800
چهارشنبه 28 مرداد 1394, 09:32 صبح
سلام دوستان
چه طوری میشه بگم که تعداد کمبوباکس هایی که selectedindex بالاتر از صفر دارن رو بشماره و نمایش بده ؟
کد زیر رو نوشتم اما همش 0 نشون میده

var i = 0;
foreach (Control c in Controls)
{
var box = c as ComboBox;
if (box != null && box.SelectedIndex > 0)
i += 1;
}

MessageBox.Show(i.ToString());

RmeXXXXXXXXX
پنج شنبه 29 مرداد 1394, 09:50 صبح
آیا از کانتینر مثل groupbox یا panel ... استفاده کرده اید؟ این نوع کنترل ها هم دارای خاصیتی بنام Controls هستند. که برای دسترسی به کنترل های درونی این کانتینرها باید مد نظر قرار بگیرد.

RmeXXXXXXXXX
پنج شنبه 29 مرداد 1394, 10:01 صبح
private int doCounting(ICollection controls)
{
if (controls == null || controls.Count < 1) return 0;
var count = 0;
foreach (Control cnt in controls)
{
var cmbBox = cnt as ComboBox;
if (cmbBox != null && cmbBox.SelectedIndex > 0)
count++;
else
count += doCounting(cnt.Controls);
} //endeach
return count;
}

private void todayReportButton_Click(object sender, EventArgs e)
{
MessageBox.Show("Test: " + doCounting(Controls));
}