پاک کردن آرایه ای از باتن ها در پنل

Ftmthri

New Member
سلام.
من بصورت گرافیکی آرایه ای از buttons ساختم توی یک پنل و بصورت ماتریسی نشونش دادم
توی برنامه ی من یک دکمه تنظیمات هست که باید سایز این ماتریس رو عوض کنم...اما وقتی یبار یکی رو انتخاب میکنم دفعه بعد ک میخوام تغییر بدم چون آرایه قبلی پاک نشده همش بهم میریزه
من با
panel.controls.remove(btns)
توی یه حلقه for امتحان کردم ولی نشد...باید چیکار کنم؟
 

the_king

مدیرکل انجمن
سلام.
من بصورت گرافیکی آرایه ای از buttons ساختم توی یک پنل و بصورت ماتریسی نشونش دادم
توی برنامه ی من یک دکمه تنظیمات هست که باید سایز این ماتریس رو عوض کنم...اما وقتی یبار یکی رو انتخاب میکنم دفعه بعد ک میخوام تغییر بدم چون آرایه قبلی پاک نشده همش بهم میریزه
من با
panel.controls.remove(btns)
توی یه حلقه for امتحان کردم ولی نشد...باید چیکار کنم؟
شما به هر طریقی اومدید داخل panel تون یکسری دکمه قرار دادید :
کد:
        Button[] btns;

        private void button1_Click(object sender, EventArgs e)
        {
            btns = new Button[3];
            for (var i = 0; i < btns.Length; i++)
            {
                btns[i] = new Button() { Text = "Button" + (i + 1).ToString(), Bounds = new Rectangle(10, 30 * i, 100, 25), Parent = panel1 };
            }
        }

چند حالت داره، یا اصلا داخل panel چیزی جز دکمه های شما نیست که راحت میگید هر چی داخلش داره پاک کن :
کد:
            panel1.Controls.Clear();

یا داخلش کنترل های دیگه ای هم هست که از نوع دکمه نیستند و بهش میگید هر چی دکمه داخلشه رو پاک کن :
کد:
            for (var i = 0; i < panel1.Controls.Count; i++)
            {
                if (panel1.Controls[i] is Button)
                {
                    panel1.Controls.RemoveAt(i);
                    i--;
                }
            }

یا میگید اون مواردی که داخل btns هست رو حذف کن :
کد:
            foreach (var btn in btns)
            {
                panel1.Controls.Remove(btn);
            }
 

Ftmthri

New Member
شما به هر طریقی اومدید داخل panel تون یکسری دکمه قرار دادید :
کد:
        Button[] btns;

        private void button1_Click(object sender, EventArgs e)
        {
            btns = new Button[3];
            for (var i = 0; i < btns.Length; i++)
            {
                btns[i] = new Button() { Text = "Button" + (i + 1).ToString(), Bounds = new Rectangle(10, 30 * i, 100, 25), Parent = panel1 };
            }
        }

چند حالت داره، یا اصلا داخل panel چیزی جز دکمه های شما نیست که راحت میگید هر چی داخلش داره پاک کن :
کد:
            panel1.Controls.Clear();

یا داخلش کنترل های دیگه ای هم هست که از نوع دکمه نیستند و بهش میگید هر چی دکمه داخلشه رو پاک کن :
کد:
            for (var i = 0; i < panel1.Controls.Count; i++)
            {
                if (panel1.Controls[i] is Button)
                {
                    panel1.Controls.RemoveAt(i);
                    i--;
                }
            }

یا میگید اون مواردی که داخل btns هست رو حذف کن :
کد:
            foreach (var btn in btns)
            {
                panel1.Controls.Remove(btn);
            }
الان دستور clear رو توی یک دکمه نوشتم و هر بار میزنم حذف میکنه اما وقتی توی دستورات دکمه شروع بازی ک باید با توجه به تنظیمات ماتریس رو تولید کنه میزنم درس عمل نمیکنه و خروجی این شکلی میشه
الان این وقتی هست ک رادیو باتن ۳ رو زدم یه ماتریس ۵ در ۵ تولید کرد و شروع بازی رو زدم بعد عوضش کردم دومی رو زدم ۴ در ۴ تولید کنه بعد شروع بازی رو زدم ولی پاک نکرده یا هر چی ک اینطوری میشه
 

پیوست ها

  • Screenshot (48).png
    Screenshot (48).png
    141.6 کیلوبایت · بازدیدها: 2
  • Screenshot (47).png
    Screenshot (47).png
    121.9 کیلوبایت · بازدیدها: 2

the_king

مدیرکل انجمن
الان دستور clear رو توی یک دکمه نوشتم و هر بار میزنم حذف میکنه اما وقتی توی دستورات دکمه شروع بازی ک باید با توجه به تنظیمات ماتریس رو تولید کنه میزنم درس عمل نمیکنه و خروجی این شکلی میشه
الان این وقتی هست ک رادیو باتن ۳ رو زدم یه ماتریس ۵ در ۵ تولید کرد و شروع بازی رو زدم بعد عوضش کردم دومی رو زدم ۴ در ۴ تولید کنه بعد شروع بازی رو زدم ولی پاک نکرده یا هر چی ک اینطوری میشه
اگه بخواهید کسی راهنمایی تون کنه باید در نظر بگیرید که با حدس زدن نمی شه اشکال کدی که بخشی اش مشخص نیست پیدا بشه.
کد متد add ای که نوشتید چی هست؟ و بغیر از داخل این button2_Click جای دیگری add رو که فراخوانی نمی کنید؟
 

جدیدترین ارسال ها

بالا