DataGridView显示中,如何做到:某一列的值为空时,另一列是不可编辑的,否则可编辑
DataGridView显示中,如何做到:某一列的值为空时,另一列是不可编辑的,否则可编辑。谢谢。
------解决方案--------------------
//设置单元格的只读属性
dgv1.rows[0].columns[1].readonly=(dgv1.rows[0].columns[0].value==dbnull.value)
// 设置 DataGridView1 的第2列整列单元格为只读
DataGridView1.Columns[1].ReadOnly = true;
// 设置 DataGridView1 的第3行整行单元格为只读
DataGridView1.Rows[2].ReadOnly = true;
// 设置 DataGridView1 的[0,0]单元格为只读
DataGridView1[0, 0].ReadOnly = true;
2) 使用 EditMode 属性
DataGridView.EditMode 属性被设置为 DataGridViewEditMode.EditProgrammatically 时,用户就不能手动编辑单元格的内容了。但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。
[C#]
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
------解决方案--------------------#1 正解 直接控制列的只读属性即可。(#2 我发错帖子,抱歉)
------解决方案--------------------C# code
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewRow row = this.dgvPathWay.Rows[e.RowIndex];
bool isNull = false ;
if (e.ColumnIndex ==1)
{
if (row != null)
{
if (row.Cells["name1"].Value.ToString() == "")
{
isNull = true;
}
}
}
if (e.ColumnIndex ==2)
{
if (row != null)
{
if (isNull)
row.Cells["name2"].ReadOnly = true;
}
}
}