我有一个绑定到 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 上特定记录的选择器,其中一些列绑定到数据库[数据网格视图的屏幕截图]
这是我的屏幕截图。在 DataGridView 上加载记录后,我将单击该复选框,但当我这样做时,它无法选中。
复选框和数据网格视图
如果要在datagridview中编辑数据,则需要设置Read-only
属性为false
属性Enable
并且属性为datagridview的true
。
您可以设置属性三个不同的图层 1.全数据网格视图 2.关于列 3.行
在您的情况下,如果您想要第 1 列可以编辑铰孔而不是编辑,那么(在完整的数据网格视图上 Readonly
= false(,然后对于剩余的列使属性为 true。 像这样
dataGridView1.Columns[1].ReadOnly = true;
dataGridView1.Columns[2].ReadOnly = true;
更多信息