2010-04-08 10 views
26

मैं डेटाग्रिडव्यू में केवल दो कॉलम को संपादित करने में सक्षम होना चाहता हूं। दूसरों को संपादित करने की अनुमति नहीं दी जानी चाहिए। आगे मैं डेटा स्रोत से सीधे लिंक नहीं कर रहा हूं; मैं इस तरह सेमैं विंडोज़ एप्लिकेशन में डेटाग्रिडव्यू में केवल एक विशेष कॉलम को संपादित करने की अनुमति कैसे दूं?

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

उत्तर

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) संपादित किया जा सकेगा।

संबंधित मुद्दे