如何通過從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