首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataGridView显示中,怎么做到:某一列的值为空时,另一列是不可编辑的,否则可编辑

2012-07-31 
DataGridView显示中,如何做到:某一列的值为空时,另一列是不可编辑的,否则可编辑DataGridView显示中,如何做

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;                }            }        } 

热点排行