+1 امتیاز
سلام دوستان...

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

1 پاسخ

+5 امتیاز
 
بهترین پاسخ

سلام.

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.RowCount - 1; ++i)
            {
                if ((bool)dataGridView1.Rows[i].Cells["CheckColumn"].Value == true)
                {
                    MessageBox.Show("سطر " + (i + 1) + " انتخاب شده است");
                }
            }
        }

http://stackoverflow.com/questions/18439758/how-to-know-a-specific-checkbox-inside-datagridview-is-checked-or-not

سلام دوست عزیز...ممنون از پاسخگوییتون...طبق آموزش های سایت و لینکی که شما دادین کدی به صورت زیر نوشتم ولی پیغام خطا میده

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication10
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.dataGridView1.ColumnCount = 2;
            this.dataGridView1.Rows.Add(new object[] { "A", "B" });
            this.dataGridView1.Rows.Add(new object[] { "C", "D" });

            DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
            dataGridView1.Columns.Add(chk);
            chk.HeaderText = "Check";
            chk.Name = "chk";
            dataGridView1.Rows[1].Cells[2].Value = true;
        }

      
        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            for (int i = 0; i < dataGridView1.RowCount - 1; ++i)
            {
                if ((bool)dataGridView1.Rows[i].Cells["Check"].Value)
                {
                    MessageBox.Show(i.ToString());
                }
            }
        }

    }
}

 

ویرایش شده توسط
توسط (3,483 امتیاز) 6 13 87

اسم ستونتون chk هست نه check ! :)

می تونید از شماره اندیس ستون هم استفاده کنید

 

 
 
 
توسط (6,145 امتیاز) 5 11 116
عوض کردم بازم هم همین پیغام رو میده...شماره اندیس هم میذارم پیغام Specified cast is not valid. رو میده
توسط (3,483 امتیاز) 6 13 87

از مقدار اندیس 2 استفاده می کنید  ؟

 
 
 
توسط (6,145 امتیاز) 5 11 116
بله ، اندیس ها رو به ترتیب تست کردم...0 و 1 و 2
توسط (3,483 امتیاز) 6 13 87

کدها در رویداد CellContentClick جواب میدن، و در رویداد CellValueChanged جواب مناسبی بر نمیگردونن.

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

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            dataGridView1.EndEdit();
            if ((bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)
            {
                MessageBox.Show(e.RowIndex.ToString());
            }
        }

 

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

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            dataGridView1.EndEdit();
            for (int i = 0; i < dataGridView1.RowCount - 1; ++i)
            {
                if ((bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)
                {
                    MessageBox.Show(i.ToString());
                }
            }
        }

یا

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            dataGridView1.EndEdit();
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (Convert.ToBoolean(row.Cells[e.ColumnIndex].Value) == true)
                {
                    MessageBox.Show(row.Index.ToString());
                }
            }
        }

 

توسط (2,595 امتیاز) 5 15 90
مرسیییییی.. واقعا ممنون..دستتون درد نکنه
توسط (3,483 امتیاز) 6 13 87
Perfect
توسط (466 امتیاز) 7 26
تشکر csharp.net وظیفه ای بیش نیست و تشکر از شما آقای faceforce عزیز
توسط (2,595 امتیاز) 5 15 90
شما لطف دارین آقا/خانم امیدوار...

فکر کنم این بخش پرسش و پاسخ کمی دیر راه اندازی شد ولی با این وجود مطمئنا آینده داره. واقعا از همه دوستان عزیز و همچنین مدیریت محترم سایت به خاطر راه اندازی همچین سایت پرباری تشکر می کنم

همیشه موفق و موید باشید.
توسط (3,483 امتیاز) 6 13 87
خواهش می کنم دوستان . بله حق با شماست . یه کم دیر راه اندازی شد ولی به قول شما مطمئنم اینده داره .

فقط شما یک لطف کنید هر کسی رو می بینید که به نوعی در برنامه نویسی سی شارپ تخصص داره ، این سایت رو بهش معرفی کنید .

هر آموزشی هم که دارید برای ایمیلم بفرستید تا با نام خودتون در سایت قرارش بدم

مرسی
توسط (6,145 امتیاز) 5 11 116
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...