我有一个绑定到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后,我将单击该复选框,但是当我这样做时,将无法对其进行检查。
答案 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;