2012-12-10 12 views
5

मैं एक Winform में एक DataGridView है, मैं एक कोड मैं यहाँ देखा का उपयोग कर एक चेकबॉक्स के साथ एक स्तंभ datagrid को जोड़ा गया:DataGridView जाँच

DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn(); 
    { 
     column.HeaderText = "Export"; 
     column.Name = "Export"; 
     column.AutoSizeMode = 
      DataGridViewAutoSizeColumnMode.DisplayedCells; 
     column.FlatStyle = FlatStyle.Standard; 
     column.CellTemplate = new DataGridViewCheckBoxCell(false); 
     column.CellTemplate.Style.BackColor = Color.White; 
    } 

    gStudyTable.Columns.Insert(0, column); 

इस काम करता है लेकिन मैं चेकबॉक्स चाहते डिफ़ॉल्ट रूप से चेक किए जाने के लिए मैंने जोड़ा:

foreach (DataGridViewRow row in gStudyTable.Rows) 
    {     
     row.Cells[0].Value = true; 
    } 

लेकिन चेकबॉक्स कॉल अभी भी अनचेक है। मैं अपने डेटा स्रोत के रूप में एक संग्रह का उपयोग कर रहा हूं और डेटा स्रोत जोड़ने के बाद मैं कोल के मान को बदलता हूं।

+0

आप सेल मूल्य के बजाय डेटा स्रोत संग्रह को बदलने का प्रयास कर सकते हैं। 'डेटासोर्सकोलेक्शन [0]। एक्सपोर्ट = सच' आदि जैसे कुछ ... –

+0

चेकबॉक्स मेरे डेटा स्रोत – meirrav

+0

का हिस्सा नहीं है, जब भी आप अपने डेटाग्रिड डेटा बाइंडिंग पूर्ण घटना को उठाते हैं तो आप चेकबॉक्स मान को सत्य पर सेट कर सकते हैं: http: //social.msdn। microsoft.com/Forums/en/csharplanguage/thread/2c7fe077-095e-472f-9833-c0633eb7035f – Mate

उत्तर

9

मुझे लगता है कि कॉलम घोषणा पर चेक किए गए मान को सेट करने का कोई तरीका नहीं है। के बाद डेटा स्रोत (DataBindingComplete घटना में उदाहरण के लिए) के लिए निर्धारित है आप पंक्तियों यह जाँच irerate को होगा:

for (int i = 0; i < dataGridView1.Rows.Count -1; i++) 
{ 
dataGridView1.Rows[i].Cells[0].Value = true; 
} 
अपने स्तंभ नाम के साथ

: इस तरह यह करने के लिए

for (int i = 0; i < dataGridView1.Rows.Count -1; i++) 
{ 
    dataGridView1.Rows[i].Cells["Export"].Value = true; 
} 
+0

यह काम करता है बढ़िया, धन्यवाद – meirrav

+0

आपका स्वागत है :) –

+1

यह पिछले पंक्तियों को छोड़कर सभी पंक्तियों पर लागू होता है। कृपया लूप के लिए बदलें: के लिए (int i = 0; i dsmyrnaios

3

प्रयास करें:

foreach (DataGridViewRow row in dgv.Rows)  
{ 
    row.Cells[CheckBoxColumn.Name].Value = true;  
} 
0

आप डाटाएड्रिडव्यू में कॉलमैबल का उपयोग कर सकते हैं और कॉलम बना सकते हैं और फिर पंक्तियां जोड़ सकते हैं, पहले कॉलम मान को 'टी' प्रत्येक पंक्ति के लिए 'rue' या 'गलत'।

इस

0

अगर ([i] .Cells [0] .FormattedValue == सच (bool) this.dataGridView2.Rows)

+1

आप शायद भविष्य में टिप्पणियों के रूप में इस तरह के छोटे उत्तर देना चाहते हैं। –

0

के दौरान या ग्रिड में मूल्य लोड और बाद में जांच करने के लिए कोशिश ग्रिड में मूल्य इस कोड का उपयोग और ग्रिड स्तंभ के गुण सेट

foreach (DataGridViewRow row in dataGridView.Rows) 
{ 
    row.Cells[0].Value = 1; 
} 

enter image description here

-2

एक आसान तरीका है जैसा कि नीचे दिखाया संपत्ति NewRowIndex उपयोग करने के लिए है:

dvgInvoiceItems.Rows[dvgInvoiceItems.NewRowIndex-1].Cells[5].Value = true; 
dvgInvoiceItems.Rows[dvgInvoiceItems.NewRowIndex-1].Cells[6].Value = true;