foreach (RadioButton radioButton in Form1.Controls.OfType<RadioButton>())
radioButton.Checked = false;
با سلام دوستان می خوام تمام رادیو باتن های یک فرم پاک بشن.کدم بالا را کمک گرفتم ولی زیر فرم 1 خط قرمز می کشه و خطا میده.چه باید کرد.:قلب:
Printable View
foreach (RadioButton radioButton in Form1.Controls.OfType<RadioButton>())
radioButton.Checked = false;
با سلام دوستان می خوام تمام رادیو باتن های یک فرم پاک بشن.کدم بالا را کمک گرفتم ولی زیر فرم 1 خط قرمز می کشه و خطا میده.چه باید کرد.:قلب:
با سلام
یا برش دارید یا بجاش از this استفاده کنید
سلام
این متد رو فراخوانی کنید
public List<T> GetAll<T>(Control control)
{
var controls = control.Controls.Cast<Control>().ToList();
var result = controls.Where(x => x.GetType() == typeof(T)).Cast<T>().ToList();
controls.ForEach(c => result.AddRange(GetAll<T>(c)));
return result;
}
خروجی این متد ، یک لیست از شی مورد نظر شما می باشد (در اینجا RadioButton) که با یک حلقه قادر به تغییر آنها خواهید بود ، به این صورت
foreach (var radioButton in GetAll<RadioButton>(this))
{
//مثال
radioButton.Text = @"XYZ";
}
استاد اشتیانی یه عرض کوچک
من از همون کد برای خالی نبودن تکس باکس استفاده کردم میخام در صورت خالی نبودن هر کدام از تکس باکس ها پیغام اوکی را بده ولی اگه یه دونه هم پر باشه این پیغامو میدهد . لطفا مساعدت بفرمایید
foreach (var TextBox in GetAll<TextBox>(this))
{
if (TextBox.Text == (""))
{
MessageBox.Show("NOOO");
}
else
{
MessageBox.Show("ok");
}
دوست عزیز دیگه نیازی به اون حلقه نداری، به این شکل میتونی بررسی کنی که آیا همه تکست باکس ها پر شدن یا نه؟var textBoxesList = GetAll<TextBox>(this);
bool allFilled = textBoxesList.All(a => !string.IsNullOrEmpty(a.Text));
if(allFilled)
MessageBox.Show("ok");
else
MessageBox.Show("NOOOOO");