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

نام تاپیک: جلوگیری از نوشتن کد های تکراری برای کار با کنترل ها

  1. #1

    Question جلوگیری از نوشتن کد های تکراری برای کار با کنترل ها

    سلام و خسته نباشید
    با یک مثال سوالمو توضیح میدم

    مثلا 100 تا چک باکس داریم و یک دیتا گریدویو 100 ستونه و کد زیرو
     if (checkBox1.Checked)
    {
    dataGridView1.Columns[1].Visible = false;
    }

    میخوام هر کدوم از 100 چک باکس تیک خورد ستون مربوط به اون چک باکس نمایش داده نشه.

    آیا راهی هست که بشه با یه for یا چیزه مشابه به جای عدد 1 متغیر مثلا i گذاشت ( checkBox+ i +.Checked) یا یه همچین چیزی که از نوشتن 100 خط یا بیشتر جلوگیری کرد یا اصلا اساتید راه بهتری سراغ دارن برای این جور موارد؟؟؟

    یه همچین چیزی پیدا کردم ولی نمیتونه اسم کنترل هارو تشخیص بده و با همه یه جور برخورد میکنه
     Action<Control.ControlCollection> func = null;
    func = (controls) =>
    {
    foreach (Control control in controls)
    {
    if (control is CheckBox)
    {
    {


    تشکر

  2. #2
    کاربر دائمی آواتار Davidd
    تاریخ عضویت
    آذر 1392
    محل زندگی
    تهران
    پست
    391

    نقل قول: جلوگیری از نوشتن کد های تکراری برای کار با کنترل ها

    آره راه داره.
    event checkedChanged تمام checkBox هارو به يك متد وصل كن. براي اينكار ميتوني رو يكي از checkBox دابل كليك كني تا يه متد بسازه. بعد تمام chckBox هارو انتخاب كن و از قسمت eventها، براي event checkedChanged اين متدي كه ساخته شده انتخاب كن.
    حالا داخل اين متد از روي شي sender ميتوني بفهمي كدوم checkBox تيك خورده (يا تيكش برداشته شده) به اين صورت CheckBox chbx=sender as CheckBox
    حالا از روي Name اين chbx ميتوني بفهمي شمارش چيه و اگه تيك خورده بود ستون مربوطه نشون داده بشه و اگه تيكش برداشته شده برعكس.

  3. #3

    نقل قول: جلوگیری از نوشتن کد های تکراری برای کار با کنترل ها

    نقل قول نوشته شده توسط deldadeh108 مشاهده تاپیک
    آره راه داره.
    event checkedChanged تمام checkBox هارو به يك متد وصل كن. براي اينكار ميتوني رو يكي از checkBox دابل كليك كني تا يه متد بسازه. بعد تمام chckBox هارو انتخاب كن و از قسمت eventها، براي event checkedChanged اين متدي كه ساخته شده انتخاب كن.
    حالا داخل اين متد از روي شي sender ميتوني بفهمي كدوم checkBox تيك خورده (يا تيكش برداشته شده) به اين صورت CheckBox chbx=sender as CheckBox
    حالا از روي Name اين chbx ميتوني بفهمي شمارش چيه و اگه تيك خورده بود ستون مربوطه نشون داده بشه و اگه تيكش برداشته شده برعكس.
    راستش زیاد متوجه نشدم میشه کد قسمت متد را بزارید

    ***************
    2- در ضمن یه همچین چیزی (checkBox+ i +.Checked)یا (textbox[i].text) یا موارد مشابه اصلا نمیشه ؟؟؟ (مهم)
    آخرین ویرایش به وسیله xxxsenatorxxx : سه شنبه 31 تیر 1393 در 10:24 صبح

  4. #4
    کاربر دائمی آواتار Davidd
    تاریخ عضویت
    آذر 1392
    محل زندگی
    تهران
    پست
    391

    نقل قول: جلوگیری از نوشتن کد های تکراری برای کار با کنترل ها


    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
    CheckBox chbx = sender as CheckBox;
    int num = Convert.ToInt32(chbx.Name.Substring(8));
    dataGridView1.Columns[num].Visible = chbx.Checked;
    }

    همانطوركه گفتم بايد رويداد CheckedCHanged تمام checkBox ها به اين متد وصل باشه

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

  1. سوال: جلوگیری از ورود داده های تکراری با CustomValidator
    نوشته شده توسط abdonsd در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: پنج شنبه 08 بهمن 1388, 23:16 عصر
  2. سوال: جلوگیری از ورود داده های تکراری
    نوشته شده توسط پایلوت در بخش C#‎‎
    پاسخ: 7
    آخرین پست: شنبه 14 آذر 1388, 00:36 صبح
  3. جلوگیری از ورود داده های تکراری و غیر مجاز در دیتا بیس
    نوشته شده توسط 13601360 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 3
    آخرین پست: پنج شنبه 29 اسفند 1387, 21:21 عصر
  4. کلاس های آماده برای کار با database
    نوشته شده توسط m_abasi2004 در بخش C#‎‎
    پاسخ: 9
    آخرین پست: جمعه 09 آذر 1386, 00:45 صبح
  5. کوئری های لازم برای کار با GetChanges
    نوشته شده توسط once4ever در بخش C#‎‎
    پاسخ: 16
    آخرین پست: پنج شنبه 03 خرداد 1386, 23:41 عصر

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

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