DataGridView CellEnter Событие, показывающее неверный столбец Index после добавления CheckBoxColumn - PullRequest
0 голосов
/ 11 февраля 2019


Я новичок в C #.Я добавляю CheckBoxColumn к своему datagridview динамически.Но после добавления CheckBoxColumn, когда я проверяю индекс столбца для события CellEnter, всегда отображается индекс 0 из CheckBoxColumn.Вот мой код ...

private void DefaultGrid(Form frm)
        {
            DataGridView dgv = (DataGridView)frm.Controls.Find("dgvHP_WardChargeMaster_Detail___", true).SingleOrDefault();
            using (DataTable dt = new DataTable())
            {
                dt.Columns.AddRange(new DataColumn[5]
            {
            new DataColumn("Sr", typeof(string)), new DataColumn("Code", typeof(string)), new DataColumn("Description",typeof(string)),
            new DataColumn("Rate",typeof(string)), new DataColumn("Ferquency",typeof(string))});
                dt.Rows.Add("1", "", "", "", "");
                dgv.DataSource = dt;
                dgv.Columns[0].Width = 30;
                dgv.Columns[2].Width = 200;
                dgv.Columns[3].Width = 60;
                dgv.Columns[4].Width = 75;
                dgv.AllowUserToResizeColumns = false;
                dgv.ColumnHeadersDefaultCellStyle.Font = new Font("Cambria", 9, FontStyle.Bold);
                foreach (DataGridViewColumn Col in dgv.Columns)
                {
                    if (Col.Index == 0)
                        Col.ReadOnly = true;
                    else
                        Col.ReadOnly = false;
                    Col.Visible = true;
                    Col.DefaultCellStyle.Font = new Font("Cambria", 9);
                }
                dgv.Columns[1].Visible = false;

                DataGridViewCheckBoxColumn chkHalfRate = new DataGridViewCheckBoxColumn();
                chkHalfRate.Width = 74;
                chkHalfRate.HeaderText = "Half Rate";
                chkHalfRate.Name = "HalfRate";
                chkHalfRate.DisplayIndex = 5;
                dgv.Columns.Add(chkHalfRate);
            }
        }

и CellEnter Событие

private void dgvHP_WardChargeMaster_Detail____CellEnter(object sender, DataGridViewCellEventArgs e)
        {

                        MessageBox.Show(e.ColumnIndex.ToString());
                        if (e.ColumnIndex == 4)
                        {

                        }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...