نمایش نتایج 1 تا 11 از 11

نام تاپیک: تغییر مکان 30 تا چک باکس با حلقه

  1. #1
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    تغییر مکان 30 تا چک باکس با حلقه

    سلام.
    30 تا چک باکس دارم که میخوام با یک حلقه for هر چک باکس مکانش تغییر کنه . یعنی هر چک باکس در مکان چک باکس بعدی قرار بگیره. به عبارتی همشون شیفت داده بشن به جلو. ممنون از راهنمایتون

  2. #2
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    نقل قول نوشته شده توسط دلتنگ اسمان مشاهده تاپیک
    سلام.
    30 تا چک باکس دارم که میخوام با یک حلقه for هر چک باکس مکانش تغییر کنه . یعنی هر چک باکس در مکان چک باکس بعدی قرار بگیره. به عبارتی همشون شیفت داده بشن به جلو. ممنون از راهنمایتون
    .................................................. ......................
    private void Form1_Load(object sender, EventArgs e)
    {
    var faults = new CheckBox[30];

    Point startPoint = new Point(30, 5);

    for (int i = 0; i < faults.Length; i++)
    {
    Controls.Add(new CheckBox()
    {
    Location = new Point(startPoint.X, 20 * i + startPoint.Y),
    Text = (i + 1).ToString()
    });
    }
    }

  3. #3
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    ممنون از توجهتون اما من 30تا چک باکس رو نمیخوام ایجاد کنم بلکه اونها رو دارم .فقط میخوام هر چک باکس در مکان چکس باکس بعدی قرار بگیره.
     chek_1.Location = new Point(chek_2.Location.X, chek_2.Location.Y);
    chek_2.Location = new Point(chek_3.Location.X, chek_3.Location.Y);
    chek_3.Location = new Point(chek_4.Location.X, chek_4.Location.Y);
    chek_4.Location = new Point(chek_5.Location.X, chek_5.Location.Y);
    chek_5.Location = new Point(chek_6.Location.X, chek_6.Location.Y);

    کد نوشته شده درست عمل میکنه اما نمیخوام 30 تا چک باکس رو اینجوری بنویسم میخوام داخل حلقه باشه.

  4. #4

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    کدهای داخل رویداد یک button

    foreach (Control c in GetAllControls<CheckBox>(this))
    {
    //دستورات پوینت
    }

    کافیه نسبت به c لوکیشنی که می خوای رو بدی. c چک باکس موجود در فرم شماست. اگه چک باکسها در panel است جای this اسم پنل رو بذارید

    private List<T> GetAllControls<T>(Control ctl) where T : Control
    {
    var l = new List<T>();
    GetAllControls(ctl, l);
    return l;
    }
    private void GetAllControls<T>(Control ctl, List<T> l) where T : Control
    {
    foreach (Control sctl in ctl.Controls)
    {
    if (sctl is T)
    l.Add(sctl as T);
    GetAllControls(sctl, l);
    }
    }

  5. #5
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    int i = 1;
    foreach(CheckBox c in this.groupBox1.Controls)
    {
    if (c.Name == "chek_" + i)
    {
    foreach (CheckBox c2 in this.groupBox1.Controls)
    {
    if (c2.Name == "chek_" + i + 1)
    {
    c.Location = new Point(c2.Location.X, c2.Location.Y);
    }
    }
    }
    }

    حقیقتش از کدهای شما زیاد سر در نیاوردم. خودم این کد رو نوشتم اما کامپایلر خطا میگیره به foreach (CheckBox اولی خطا میده. نمیدونم شاید بد تعریف کردم.
    آخرین ویرایش به وسیله دلتنگ اسمان : پنج شنبه 04 مهر 1392 در 17:42 عصر

  6. #6

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    اگه از راه شما می شد به نتیجه رسید همین رو می ذاشتم.
    شما همه کدها رو کپی پیست کن. نیاز به دستور شرطی هم نیس. راستش ضرورتش رو متوجه نشدم. در هر سری c معادل یکی از چک باکس هاست. لطفا TabIndex رو هم مرتب کن.
    داخل حلقه کافیه بنویسی

    c.Location = new Point(c.Location.X+5, c.Location.Y);

  7. #7

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    هر خطایی داشت بهم بگو. تنها راه دسترسی به کنترلهای یک فرم همونی هست ک گفتم. اگه راه ساده تری هست خوشحال می شم دوستان بیان کنن

  8. #8
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    کد رو به اینصورت نوشتم خطا نمیده و اجرا هم میشه اما چکس باکس ها رو فرم نشون داده نمیشن!!!

    int i = 30;
    foreach (Control c in this.Controls)
    {
    if (c.Name == "chek_" + i)
    {
    foreach (Control c2 in this.Controls)
    {
    if (c2.Name == "chek_" +( i + 1))
    {
    c.Location = new Point(c2.Location.X, c2.Location.Y);
    i--;
    break;
    }
    }

    }

    }

  9. #9

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

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

    موفق باشی

  10. #10
    کاربر دائمی آواتار دلتنگ اسمان
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    دل یار
    سن
    35
    پست
    571

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    بالاخره یافتم :
     int i = 1;
    while (i < 32)
    {

    foreach (Control c in this.Controls)
    {
    if (c.Name == "chek_" + i)
    {
    foreach (Control c2 in this.Controls)
    {
    if (i == 31)
    {
    c.Location = new Point((chek_30.Location.X) - 50, chek_30.Location.Y);
    i++;
    break;
    }
    else if (c2.Name == "chek_" + (i + 1))
    {
    c.Location = new Point(c2.Location.X, c2.Location.Y);
    i++;
    break;
    }

    } // End foreach

    }// End if

    }//End foreach

    }//Enf while
    آخرین ویرایش به وسیله دلتنگ اسمان : پنج شنبه 04 مهر 1392 در 20:20 عصر

  11. #11

    نقل قول: تغییر مکان 30 تا چک باکس با حلقه

    اگه چک باکسهای خاصی رو بخواهیم کنترل کنیم نه همه چک باکس ها رو چیکار باید کرد؟
    می تونی چک باکس ها رو گروه بندی کنی از طریق پنل.
    یا اینکه در تعریف name یک علامت بذاری، مثلا اول نام بعضیهاشون با N شروع بشه. بعد داخل حلقه سر Name شرط می ذاری.

تاپیک های مشابه

  1. حرفه ای: تشخیص کامل یک کلمه هنگام تغییر مکان نمای نوشتاری در تکست باکس
    نوشته شده توسط peymannaji در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: سه شنبه 22 تیر 1389, 14:58 عصر
  2. تغییر مکان یک دکمه button از طریق تغییر مختصات x,y در صفحه
    نوشته شده توسط tayebeh در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: سه شنبه 27 بهمن 1383, 07:04 صبح
  3. تغییر مکان اشیاء با تغییر اندازه فرم
    نوشته شده توسط mehialdst در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: پنج شنبه 15 بهمن 1383, 17:40 عصر
  4. تغییر مکان منو
    نوشته شده توسط ehsane در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: سه شنبه 17 آذر 1383, 14:19 عصر
  5. تغییر مکان اسکرول از چپ به راست
    نوشته شده توسط Sadegh_S در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 10
    آخرین پست: چهارشنبه 28 آبان 1382, 23:15 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •