PDA

View Full Version : مشکل با کنترل Flow Layout Panel



harani
چهارشنبه 05 مهر 1391, 21: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
}
}


البته از کنترل پنل که استفاده میکنم درست میشه ولی مشکل اینجاست که اگر کاربر کنترل متفاوتی را از پنل حذف کنه مطمئناً فاصله های مابین کنترلهای اضافه شده ی دیگر بهم میریزه . اگر پیشنهاد شما استفاده از پنله لطفاً این رو حل کنید .

خواهشمندم پاسخ دهید .

harani
چهارشنبه 05 مهر 1391, 23:49 عصر
دوستان لااقل اگه با کنترل Tabel Layout Panel کار کردید بگین با کد نویسی چجوری میتوانم ردیف جدبد براش بسازم که توش یک user control م باشه .نحوه پاک کردن ردیف مورد نظر بهمراه کنترلی که چک باکش تیک خورده رو بگید . ممنون
خواهشمندم راهنمایی کنید .