2011-05-30 77 views
1

enter image description here如何通過從datagridview中的組合框中選擇值來禁用行?

這裏我有一列名爲「狀態」中,我使用ComboBox現在我想的是,當用戶選擇從ComboBox然後整個行或交付其值「待定」和「傳遞」這個控件應該被禁用,所以用戶不能再次更改它,默認情況下它的值應該是「Pending」,我該怎麼做?是否有可能在gridview中禁用單個行?

回答

0

您可以處理RowChanged事件,這樣做

if (Status == 'Delivered') 
{ 
    e.Row.Enabled = False; 
} 
2

您不能禁用一個單獨的行。但是你可以把它只讀:

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

當m與形式加載該代碼嘗試它給了我不同的是「指數超出範圍,必須是非負面的,並且小於收藏的大小。「在行[e.RowIndex],所以Wats出錯了,我也必須初始化RowIndex。 – avirk 2011-05-31 17:09:23

相關問題