PDA

View Full Version : خالی کردن تمامی آبجکت ها به چند تایی نامشخص



sajjad_kochekian
جمعه 08 فروردین 1393, 22:25 عصر
با سلام
من با استفاده از یک تابع تمامی آبجکت ها را خالی می کنم.
ولی در بعضی از فرمها می خواهم یک یا چندتا از آنها را خالی نکند


public static void ClearControls(Control.ControlCollection col)
{

foreach (Control c in col )
{

if (c.GetType() == typeof(TextBox))
{
TextBox f = (TextBox)c;
f.Text = "";
}
else if (c.GetType() == typeof(CheckBox))
{
CheckBox ch = (CheckBox)c;
ch.Checked = false;
}
else if (c.GetType() == typeof(ComboBox))
{
ComboBox f = (ComboBox)c;
f.SelectedValue = 0;
}
if (c.Controls.Count > 0)
ClearControls(c.Controls,obj);
}
}

winner1
جمعه 08 فروردین 1393, 22:28 عصر
تو فرم پایتون یه لیست از کنترل ها قرار بدین و اون لیست تو فرم های مشتق شده از کنترل های که نباید خالی بشه پر کنین تو تابع خالی کردن شرط بزارین اگه به این کنترل ها رسید خالی نکنه خیلی ساده

sajjad_kochekian
جمعه 08 فروردین 1393, 22:32 عصر
روش اون را میشه انجام بدین.
من یک لیست ساختم ولی نمی تونم توی این تابع استفاده کنم


List<object> obj= new List<object>;
obj.Add(Cmb_warehousecodes);
obj.Add(cmb_Period);

winner1
جمعه 08 فروردین 1393, 22:35 عصر
روش اون را میشه انجام بدین.
من یک لیست ساختم ولی نمی تونم توی این تابع استفاده کنم


List<object> obj= new List<object>;
obj.Add(Cmb_warehousecodes);
obj.Add(cmb_Period);




if(myList.IndexOf(control)=!-1)
continue;

sajjad_kochekian
جمعه 08 فروردین 1393, 22:42 عصر
شرمنده.
متوجه منظورتون نشدم. من متغیر obj را به تابع پاس دادم
به شکل زیر
ClearControls(this.Controls,obj);
تابع را هم به این صورت تغییر دادم
public static void ClearControls(Control.ControlCollection col,List<object> obj)
ولی بقیه مراحل را نمی دانم

winner1
جمعه 08 فروردین 1393, 22:56 عصر
list<Control> myControl=new List<Controls>;
public static void ClearControls(Control.ControlCollection col)
{

foreach (Control c in col )
{
if(this.myControls.IndexOf(c)!=-1)continue;

if (c.GetType() == typeof(TextBox))
{
TextBox f = (TextBox)c;
f.Text = "";
}
else if (c.GetType() == typeof(CheckBox))
{
CheckBox ch = (CheckBox)c;
ch.Checked = false;
}
else if (c.GetType() == typeof(ComboBox))
{
ComboBox f = (ComboBox)c;
f.SelectedValue = 0;
}
if (c.Controls.Count > 0)
ClearControls(c.Controls,obj);
}
}

sajjad_kochekian
جمعه 08 فروردین 1393, 23:02 عصر
جواب داد خیلی ممنون