如何通过从datagridview中的组合框中选择值来禁用行?
这里我有一列名为“状态”中,我使用ComboBox
现在我想的是,当用户选择从ComboBox然后整个行或交付其值“待定”和“传递”这个控件应该被禁用,所以用户不能再次更改它,默认情况下它的值应该是“Pending”,我该怎么做?是否有可能在gridview中禁用单个行?
如何通过从datagridview中的组合框中选择值来禁用行?
这里我有一列名为“状态”中,我使用ComboBox
现在我想的是,当用户选择从ComboBox然后整个行或交付其值“待定”和“传递”这个控件应该被禁用,所以用户不能再次更改它,默认情况下它的值应该是“Pending”,我该怎么做?是否有可能在gridview中禁用单个行?
您可以处理RowChanged事件,这样做
if (Status == 'Delivered')
{
e.Row.Enabled = False;
}
您不能禁用一个单独的行。但是你可以把它只读:
DataGridView1.Rows[rowIndex].ReadOnly = true;
(这使得一行的rowIndex的指数设置为只读)。
为了您的具体的例子,你想处理的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;
}
}
当m与形式加载该代码尝试它给了我不同的是“指数超出范围,必须是非负面的,并且小于收藏的大小。“在行[e.RowIndex],所以Wats出错了,我也必须初始化RowIndex。 – avirk 2011-05-31 17:09:23