harani
چهارشنبه 05 مهر 1391, 22:19 عصر
با عرض سلام :
من یک user control دارم که شامل یک تکست باکس و یک چک باکس هستش :
یه فرم دارم که دو تا دکمه ی Add و Remove داره یه چک باکس با نام Check All داره . با فشردن دکمه Add کنترل ایجاد شده با فواصل معینی در کنترل Flow Layout Panel فرم اضافه میشه (مثلاً 30 تا اضافه میشه). با فشردن کلید remove آن user control هایی که چک باکشان تیک خورده از کنترل پنل حذف میشوند .(توجه کنید که user control هایی که تیک خوردن ممکن است است بصورت پشت سر هم نباشند)
حال اگه کاربر با استفاده از چک باکس CheckAll تمامی user control هایی موجود در Flow Layout Panel را انتخاب کرد و بخواهد با فشردن دکمه ی remove همگی را حذف کند این اتفاق نمیافتد یعنی همه حذف نمیشن.
کدهام به شکل زیره (flp همان کنترل Flow Layout Panel هستش):
private void btnAdd_Click(object sender, EventArgs e)//n
{
MyControl ec = new MyControl();//p
flp.Controls.Add(ec);//o
}
private void btnRemove_Click(object sender, EventArgs e)//k
{
for (int i = 0; i < flp.Controls.Count; i++)//r
{
if ((flp.Controls[i] as MyControl).CheckBox1.Checked)//a
flp.Controls.Remove(flp.Controls[i]); //y
}
}
private void CheckAll_CheckedChanged(object sender, EventArgs e)//v
{
for (int i = 0; i < flp.Controls.Count; i++)//b
{
((MyControl)flp.Controls[i]).CheckBox1.Checked = CheckAll.Checked;//a
}
}
البته از کنترل پنل که استفاده میکنم درست میشه ولی مشکل اینجاست که اگر کاربر کنترل متفاوتی را از پنل حذف کنه مطمئناً فاصله های مابین کنترلهای اضافه شده ی دیگر بهم میریزه . اگر پیشنهاد شما استفاده از پنله لطفاً این رو حل کنید .
خواهشمندم پاسخ دهید .
من یک user control دارم که شامل یک تکست باکس و یک چک باکس هستش :
یه فرم دارم که دو تا دکمه ی Add و Remove داره یه چک باکس با نام Check All داره . با فشردن دکمه Add کنترل ایجاد شده با فواصل معینی در کنترل Flow Layout Panel فرم اضافه میشه (مثلاً 30 تا اضافه میشه). با فشردن کلید remove آن user control هایی که چک باکشان تیک خورده از کنترل پنل حذف میشوند .(توجه کنید که user control هایی که تیک خوردن ممکن است است بصورت پشت سر هم نباشند)
حال اگه کاربر با استفاده از چک باکس CheckAll تمامی user control هایی موجود در Flow Layout Panel را انتخاب کرد و بخواهد با فشردن دکمه ی remove همگی را حذف کند این اتفاق نمیافتد یعنی همه حذف نمیشن.
کدهام به شکل زیره (flp همان کنترل Flow Layout Panel هستش):
private void btnAdd_Click(object sender, EventArgs e)//n
{
MyControl ec = new MyControl();//p
flp.Controls.Add(ec);//o
}
private void btnRemove_Click(object sender, EventArgs e)//k
{
for (int i = 0; i < flp.Controls.Count; i++)//r
{
if ((flp.Controls[i] as MyControl).CheckBox1.Checked)//a
flp.Controls.Remove(flp.Controls[i]); //y
}
}
private void CheckAll_CheckedChanged(object sender, EventArgs e)//v
{
for (int i = 0; i < flp.Controls.Count; i++)//b
{
((MyControl)flp.Controls[i]).CheckBox1.Checked = CheckAll.Checked;//a
}
}
البته از کنترل پنل که استفاده میکنم درست میشه ولی مشکل اینجاست که اگر کاربر کنترل متفاوتی را از پنل حذف کنه مطمئناً فاصله های مابین کنترلهای اضافه شده ی دیگر بهم میریزه . اگر پیشنهاد شما استفاده از پنله لطفاً این رو حل کنید .
خواهشمندم پاسخ دهید .