2010-04-08 6 views
26

Tôi muốn chỉ bật hai cột trong DataGridview để có thể chỉnh sửa. Những người khác không được phép chỉnh sửa. Tôi không liên kết trực tiếp tới nguồn dữ liệu; tôi sẽ thực hiện một số điều như cách nàyLàm cách nào để chỉ cho phép chỉnh sửa một cột cụ thể trong ứng dụng datagridview trong ứng dụng windows?

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; 

Vì vậy mà tài sản tôi nên thiết lập, mà sẽ cho phép chỉ có một cột nói Email (trong ví dụ ở trên) để có thể chỉnh sửa.

+0

Nền tảng nào? WinForms? – SLaks

Trả lời

35

Đặt thuộc tính ReadOnly của các cột khác thành true.

(Bạn có lẽ sẽ cần phải lặp qua các bộ sưu tập Columns và sử dụng một tuyên bố 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; 

đây đầu tiên cột (index 0) sẽ được chỉnh sửa.