我在WinForms應用程序中有一個datagridview,並且我希望所有列欄都被鎖定爲編輯狀態。這我能夠實現與下面的代碼:在DataGridView中只讀列和行
foreach (DataGridViewColumn col in myGrid.Columns)
{
if (col.Name == "LockedColumn")
{
col.ReadOnly = false;
}
else
{
col.ReadOnly = true;
}
}
不過,我還需要一個條件鎖定在此列,這取決於每行中其他地方的值。我試了下面的代碼:
foreach (DataGridViewRow row in myGrid.Rows)
{
if ((bool)row.Cells["ConditionalColumn"].Value == false)
{
row.ReadOnly = false;
}
else
{
row.ReadOnly = true;
}
}
但是,這鎖定了整個網格,這不是我想要的。我以後的表格可能會更清晰一些。
可樂COLB COLC
ROW1真值1
2行假值2
ROW3真值3
我想列一個&乙鎖定(只讀)的全部,默認Col C允許編輯,除非列B中的值爲false。因此在上面的例子中,只有value1和value3是可編輯的。
但是,我似乎無法實現這一點,因爲如上所述,如果我通過條件將readonly設置爲false的行遍歷,所有內容都將被鎖定。
這是您的項目的實際代碼?你不能將一個datagridview單元轉換爲bool,所以這段代碼不應該編譯。也不清楚你的問題是什麼。你是說當你只讀一行時,整個網格變成只讀?這不會發生。 – 2012-08-16 10:54:23
爲什麼所有降價 - 我的問題到底是怎麼回事? – PJW 2012-08-16 11:41:20
我沒有downvote - 人們感到驚訝,但也許是非編譯代碼是原因。希望如果您從項目中發佈實際代碼,人們將刪除downvotes。 – 2012-08-16 11:45:25