PDA

View Full Version : دستور خیلی ساده در استفاده از رادیو باتن



hamidtmu
شنبه 24 فروردین 1398, 00:08 صبح
foreach (RadioButton radioButton in Form1.Controls.OfType<RadioButton>())
radioButton.Checked = false;



با سلام دوستان می خوام تمام رادیو باتن های یک فرم پاک بشن.کدم بالا را کمک گرفتم ولی زیر فرم 1 خط قرمز می کشه و خطا میده.چه باید کرد.:قلب:

danialafshari
شنبه 24 فروردین 1398, 00:21 صبح
با سلام
یا برش دارید یا بجاش از this استفاده کنید

hamidtmu
شنبه 24 فروردین 1398, 12:36 عصر
با سلام
یا برش دارید یا بجاش از this استفاده کنید

من از this استفاده کرده بودم ولی رادیو باتن های داخلی گروپ باکس را تغیر نمی داد

محمد آشتیانی
شنبه 24 فروردین 1398, 16:24 عصر
سلام
این متد رو فراخوانی کنید

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";
}

hamidtmu
شنبه 24 فروردین 1398, 20:54 عصر
سلام
این متد رو فراخوانی کنید

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";
}

با تشکر .خیلی عالی و سازنده بود

hamidtmu
شنبه 24 فروردین 1398, 23:14 عصر
استاد اشتیانی یه عرض کوچک

من از همون کد برای خالی نبودن تکس باکس استفاده کردم میخام در صورت خالی نبودن هر کدام از تکس باکس ها پیغام اوکی را بده ولی اگه یه دونه هم پر باشه این پیغامو میدهد . لطفا مساعدت بفرمایید



foreach (var TextBox in GetAll<TextBox>(this))
{
if (TextBox.Text == (""))
{
MessageBox.Show("NOOO");

}
else
{
MessageBox.Show("ok");
}

mr.sirwan
یک شنبه 25 فروردین 1398, 01:06 صبح
دوست عزیز دیگه نیازی به اون حلقه نداری، به این شکل میتونی بررسی کنی که آیا همه تکست باکس ها پر شدن یا نه؟
var textBoxesList = GetAll<TextBox>(this);
bool allFilled = textBoxesList.All(a => !string.IsNullOrEmpty(a.Text));

if(allFilled)
MessageBox.Show("ok");
else
MessageBox.Show("NOOOOO");

hamidtmu
یک شنبه 25 فروردین 1398, 12:59 عصر
دوست عزیز دیگه نیازی به اون حلقه نداری، به این شکل میتونی بررسی کنی که آیا همه تکست باکس ها پر شدن یا نه؟
var textBoxesList = GetAll<TextBox>(this);
bool allFilled = textBoxesList.All(a => !string.IsNullOrEmpty(a.Text));

if(allFilled)
MessageBox.Show("ok");
else
MessageBox.Show("NOOOOO");



تشکر فراوان. سازنده و مفید بود