2010-04-08 49 views
26

我想啓用DataGridview中只有兩列才能編輯。 其他人不應該被允許編輯。 此外,我不直接鏈接到數據源; 我會做一些事情像這樣如何在Windows應用程序中允許編輯datagridview中的特定列?

DataTable dt = new DataTable(); 
dt.Columns.Add("Email"); 
dt.Columns.Add("email1"); 
for (int i = 0; i < 5; i++) 
{ 
    DataRow dr = dt.NewRow(); 
    dr["Email"] = i.ToString(); 
    dr["email1"] = i.ToString() + "sdf"; 
    dt.Rows.Add(dr); 
} 
BindingSource bs = new BindingSource(); 
bs.DataSource = dt; 
dataGridView1.DataSource = bs; 

所以我應該設置哪些屬性,這將使只有一列說,電子郵件(在上面的示例)可編輯。

+0

什麼平臺?的WinForms? – SLaks 2010-04-08 02:54:32

回答

35

將其他列的ReadOnly屬性設置爲true

(您可能會通過Columns收集需要循環並使用if語句)

19
foreach (DataGridViewColumn dc in dataGridViewX1.Columns) 
{ 
     if (dc.Index.Equals(0) || dc.Index.Equals(1)) 
     { 
      dc.ReadOnly = false; 
     } 
     else 
     { 
      dc.ReadOnly = true; 
     } 
} 
18
dataGridView1.ReadOnly = false; 
dataGridView1.Columns[1].ReadOnly = true; 
dataGridView1.Columns[2].ReadOnly = true; 

這裏第一列(索引0)都將可以編輯。

相關問題