无法选中带有复选框的数据绑定Datagidview

时间:2019-07-15 04:46:17

标签: c# winforms datagridview

我有一个绑定到SQL Server中数据库的datagridview,并且在第一列中放置了一个复选框,当我运行程序时,无法选中该复选框。为什么?和复选框之间的冲突是什么?请帮助我非常需要它。谢谢

我尝试将datagridview属性设置为ReadOnly=true,启用编辑为true,但是这些都不起作用

C#Winform代码:

private void dgvSummaryUnserviceable_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
    try
        {
            if (dgvSummaryUnserviceable.Rows.Count == 0)
            {
                MessageBox.Show("No Items to Load.Choose Transaction type first", "Field Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            }
            else
            {
                if (cboTranstype.Text == "PAR")
                {

                    foreach (DataGridViewRow row in dgvSummaryUnserviceable.Rows)
                    {

                        bool isSelected = Convert.ToBoolean(row.Cells["colUnserviceable"].Value);
                        if (isSelected)
                        {

                            //getting the specific cell value in datagridview
                            if (dgvSummaryUnserviceable.SelectedCells.Count > 0)
                            {
                                emp_idno = row.Cells[5].Value.ToString();
                                MessageBox.Show("" + emp_idno);
                                T_type = cboTranstype.Text;
                                prop_no = row.Cells[9].Value.ToString();
                                qty = Convert.ToInt32(row.Cells[10].Value);
                            }

                        }
                        else
                        {
                            int iRows = dgvSummaryUnserviceable.Rows.Count;
                            int iCheckedCount = 0;

                            for (int i = 0; i < iRows; i++)
                            {
                                int iChecked = 0;
                                iChecked = Convert.ToInt32(dgvSummaryUnserviceable.Rows[i].Cells["colUnserviceable"].FormattedValue);
                                iCheckedCount += iChecked;
                            }//for

                            if (iCheckedCount == 0)
                            {

                                MessageBox.Show("Select first the Items you want to Transfer", "Field Required", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                                return;

                            }//if

                        }//else
                    }//foreach
                }//cboTranstype
            }//else
        }//try
        catch (Exception ex)
        {

            MessageBox.Show(ex.Message, "Try Catch Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

这是我的完整代码。该复选框未绑定到数据库,我只是将其添加到设计中,但我想使用它作为datagridview上特定记录的选择器,其中某些列绑定到database [datagridview的屏幕快照]

有我的屏幕快照。在将记录加载到datagridview后,我将单击该复选框,但是当我这样做时,将无法对其进行检查。

checkbox and datagridview

1 个答案:

答案 0 :(得分:0)

如果要在datagridview中编辑数据,则需要将datagridview的Read-only属性设置为false,将Enable属性设置为true

您可以将属性设置为三个不同的层  1.完整的数据网格视图  2.在列上  3.在行上

在您的情况下,如果希望列1可以编辑扩孔而不是编辑,则(在完整datagridview Readonly = false上),然后对其余列将属性设为true。像这样

dataGridView1.Columns[1].ReadOnly = true;

dataGridView1.Columns[2].ReadOnly = true;

More Info