如何通过从datagridview中的comboBox中选择值来禁用行?

时间:2011-05-30 15:19:12

标签: c# gridview

enter image description here

这里我有一个列名“Status”,我在其中使用ComboBox,其值为“Pending”和“Delivered”现在我希望当用户选择从ComboBox传送然后整个行或应禁用此控件,以便用户无法再次更改它,默认情况下,其值应为“待定”,我该怎么做?是否可以在gridview中禁用单行?

2 个答案:

答案 0 :(得分:2)

您无法禁用单个行。但是你可以只读它:

DataGridView1.Rows[rowIndex].ReadOnly = true;

(这使得rowIndex索引的行设置为readonly)。

对于您的具体示例,您可能希望处理datagridview的CellValueChanged事件,并且具有以下行的代码:

        void DataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 4 && DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "Delivered")
            {
                DataGridView1.Rows[e.RowIndex].ReadOnly = true;
            }
        }

答案 1 :(得分:0)

您可以处理RowChanged事件并执行类似

的操作
if (Status == 'Delivered')
{
   e.Row.Enabled = False;
}