2013-12-08 6 views
9

मैं प्रोग्रामिंग और सी # भाषा के लिए नया हूं। मैं अटक गया, कृपया मदद करें।डेटा ग्रिडव्यू चेकबॉक्स चेक किए जाने पर कैसे जांचें?

private void button2_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     if (row.Cells[1].Value == true) 
     { 
       // what I want to do 
     } 
    } 
} 

और इसलिए मैं प्राप्त निम्न त्रुटि:

ऑपरेटर '==' प्रकार 'वस्तु' और की ऑपरेंड के लिए लागू नहीं किया जा सकता 'तो मैं इस कोड (ग # विजुअल स्टूडियो 2012) में लिखा है bool '।

उत्तर

4

वैल्यू एक ऑब्जेक्ट प्रकार लौटाता है और इसकी तुलना एक बूलियन वैल्यू से नहीं की जा सकती है। आप मूल्य bool करने के लिए

if ((bool)row.Cells[1].Value == true) 
{ 
    // what I want to do 
} 
+0

क्या करता है। Cells [1] संख्या का प्रतिनिधित्व करता है? –

27

यदि DataGridView चेकबॉक्स चयनित है की जाँच करने के Convert.ToBoolean() का उपयोग करना चाहिए डाली कर सकते हैं।

private void button2_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     if (Convert.ToBoolean(row.Cells[1].Value)) 
     { 
       // what you want to do 
     } 
    } 
} 
+0

यह स्वीकार्य उत्तर से कहीं बेहतर तरीका है ... 'कनवर्ट करें। ToBoolean()' को 'शून्य' मान जांच की आवश्यकता नहीं है इसलिए कोड को सुव्यवस्थित करना भी है। –

4

यहां पर सभी उत्तर त्रुटि-प्रवण हैं,

तो लोग हैं, जो इस सवाल को भूल गए हैं के लिए चीजों को स्पष्ट करने के लिए,

सबसे अच्छा तरीका प्राप्त करने के लिए क्या ओ पी चाहता है के साथ है निम्नलिखित कोड:

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    DataGridViewCheckBoxCell cell = row.Cells[0] as DataGridViewCheckBoxCell; 

    //We don't want a null exception! 
    if (cell.Value != null) 
    { 
     if (cell.Value == cell.TrueValue) 
     { 
      //It's checked! 
     } 
    }    
} 
+1

मेरे लिए काम किया .. –

0

थोड़ा सा संशोधन काम करना चाहिए

if (row.Cells[1].Value == (row.Cells[1].Value=true)) 
{ 
    // what I want to do 
} 
0
if (Convert.ToBoolean(row.Cells[1].EditedFormattedValue)) 
{ 
    //Is Checked 
} 
+1

यह सवाल का जवाब नहीं प्रदान करता है। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/whats-reputation) हो जाने पर आप [किसी भी पोस्ट पर टिप्पणी कर सकेंगे] (https://stackoverflow.com/help/privileges/comment); इसके बजाय, [उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-कर-बजाय)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/1675069 9) –

+0

** समीक्षा कतार से: ** क्या मैं आपसे अनुरोध कर सकता हूं कि कृपया अपने उत्तर के आस-पास कुछ और संदर्भ जोड़ें। कोड-केवल उत्तरों को समझना मुश्किल होता है। यदि आप अपनी पोस्ट में अधिक जानकारी जोड़ सकते हैं तो यह पूछने वाले और भावी पाठकों दोनों की मदद करेगा। यह भी देखें [पूरी तरह से कोड-आधारित उत्तरों समझाएं] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)। –

+0

कृपया देखें [कैसे जवाब दें] (https://stackoverflow.com/help/how-to-answer) और अधिक जानकारी प्रदान करने के लिए अपना उत्तर अपडेट करें। विशेष रूप से, यह उपयोगी होगा अगर आपने समझाया कि यह समस्या को कैसे हल करता है – Ortund

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