2013-09-27 4 views
6

के साथ कम्बोबॉक्स ड्रॉप डाउन अब इस समस्या के साथ बहुत लंबे समय तक चल रहा है, इस विषय पर सभी उत्तरों को देखा गया है और हालांकि मुझे पता चला है कि उनमें से कोई भी मेरे लिए काम नहीं कर रहा है। तो मेरी समस्या का आधार निम्नानुसार है: मेरे पास DataGridView है जो एक बार DataGridView सेल को डबल क्लिक करने पर एक पंक्ति जोड़ देगा। जब यह DataGridView पंक्ति जोड़ता है, तो यह 2 प्रकार के कॉलम को स्वयं में जोड़ता है, एक ComboBox है, जो कि पहले से ही इसमें एक संयोजन स्थापित है (बस ComboBox डेटाग्रिड के अंदर विकल्प और इसके संग्रह को भर दिया गया है) और एक चेक बॉक्स कॉलम, अब उनमें से दोनों कुछ भी नहीं करते हैं, जब मैं उन पर क्लिक करता हूं, घबराहट करता हूं, कई क्लिप जितना चाहें उतना क्लिक करें लेकिन कुछ भी नहीं होता है। मैंने भी निम्नलिखित कोड का प्रयास किया।डेटाग्रिडव्यू

public static void combolist(DataGridView combogrid)    
{ 

    var column = new DataGridViewComboBoxColumn(); 

    DataTable data = new DataTable(); 

    data.Columns.Add(new DataColumn("Value", typeof(string))); 
    data.Columns.Add(new DataColumn("Description", typeof(string))); 

    data.Rows.Add("item1"); 
    data.Rows.Add("item2"); 
    data.Rows.Add("item3"); 

    column.DataSource = data; 
    column.ValueMember = "Value"; 
    column.DisplayMember = "Description"; 

    combogrid.Columns.Add(column); 
} 

और यहां तक ​​कि मैं करने के लिए प्रकार ComboBox का एक नया स्तंभ जोड़ सकते हैं हालांकि मेरे DataGridView यह अभी भी रिक्त है (या के बाद से मैं इस सूची में नीचे गिरावट दिख सकती है CLIC खिचड़ी भाषा होने के लिए apears)। मेरा डेटा DataGridView ग्रिडव्यू गुण इस पर सेट हैं:

संपादित करें मोड: संपादित करेंऑनटर, केवल पढ़ने के लिए: झूठी।

क्या यहां कुछ याद आ रही है? मैं इस ComboBox को पॉप्युलेट या प्रदर्शित क्यों नहीं कर सकता?, कृपया यह समस्या मुझे पागल कर रही है, और मेरा मानना ​​है कि यह उत्तर खोजने के लिए सबसे अच्छी साइट है। मैं बहुत प्रशंसा करता हूं ... बहुत कुछ।

ठीक है तो मैं निश्चित रूप से एक और नजरिए से समस्या को देखने के लिए, यहां तक ​​कि एक डेटा स्रोत के लिए ComboBox बाध्यकारी tryed ive और अभी भी कुछ भी प्रदर्शित नहीं करता है !, भले ही एक ही डेटा स्रोत एक सामान्य ComboBox से आबद्ध वांछित परिणाम

हो जाता है की जरूरत है
DataGridViewComboBoxCell ComboColumn = (DataGridViewComboBoxCell)(combogrid.Rows[0].Cells[2]); 

ComboColumn.DataSource = class.details.GetData(); 
ComboColumn.DisplayMember = "name"; 

के साथ DataGridView के अंदर काम करते समय कुछ बुनियादी कदम याद आ रही है?

+0

प्रयास करें मैं दिया जानकारियां में कोई गलती नहीं दिख रहा है और मैं कुछ खास आप पर विचार करना चाहिए के बाद से 'DataGridViewComboBoxCell' के रूप में एक सामान्य' ComboBox' लगभग एक ही है पता नहीं है। हो सकता है कि आप पंक्तियों/स्तंभों और 'DataGridView' की अन्य सामग्री को जोड़ने के लिए पूरा कोड पोस्ट कर सकें जो इस परिचालन से संबंधित है? – Onsokumaru

+0

thx बीमार कोशिश करें और – user2793090

उत्तर

3

कुछ विचार:

  1. Visual Studio 2012 के साथ पोस्ट और एक खाली DataGridView होने एक Button पर क्लिक करके कोड को क्रियान्वित करने के रूप में मैं अपने कोड परीक्षण किया है। यह मेरे लिए काम करता था, क्योंकि मुझे DataGridComboBoxColumn मिला जिसमें 0 खालीतीन रिक्त प्रविष्टियां थीं। मैं के रूप में नीचे दिए गए कोड बढ़ाया और तीन नामित प्रविष्टियों मिल गया:

    data.Columns.Add(new DataColumn("Value", typeof(string))); 
        data.Columns.Add(new DataColumn("Description", typeof(string))); 
    
        data.Rows.Add("item1"); 
        data.Rows[data.Rows.Count - 1].SetField("Value", "value1"); 
        data.Rows[data.Rows.Count - 1].SetField("Description", "description1"); 
        data.Rows.Add("item2"); 
        data.Rows[data.Rows.Count - 1].SetField("Value", "value2"); 
        data.Rows[data.Rows.Count - 1].SetField("Description", "description2"); 
        data.Rows.Add("item3"); 
        data.Rows[data.Rows.Count - 1].SetField("Value", "value3"); 
        data.Rows[data.Rows.Count - 1].SetField("Description", "description3"); 
    
        column.DataSource = data; 
    

    ऐसा लगता है कि अपने कोड सिर्फ नाम के एक पंक्ति या एक पंक्ति है कि बस पहले कॉलम ("मूल्य" मिल गया "/ 2/3 ITEM1" कहते हैं जो आपका प्रदर्शन नहीं है) डेटाटेबल को दिए गए मान से भरा हुआ कोई मूल्य नहीं है जिसे प्रदर्शित किया जा सकता है। अंत में मैं ड्रॉपडाउन सूची खोलने में सक्षम नहीं होने की आपकी समस्या को पुन: उत्पन्न नहीं कर सका (ध्यान दें कि मैंने खाली DataGridView का उपयोग किया क्योंकि मुझे नहीं पता कि आपके DataGridView में आपके पास और क्या है)।

  2. मुझे नहीं पता कि पोस्ट कोड वास्तव में वह कोड है जहां आपको परेशानी है।लेकिन आप लिखते हैं कि जब आप सेल पर क्लिक करते हैं तो आप अपने DataGridView पर एक पंक्ति जोड़ते हैं और जब ऐसा होता है तो आप दो कॉलम जोड़ते हैं। क्या आपका मतलब है कि आप प्रत्येक अतिरिक्त पंक्ति के लिए दो कॉलम ग्रिड में जोड़ते हैं या क्या आपका मतलब यह है कि पंक्ति में इन दो कॉलम होते हैं?
    यदि अंतिम व्यक्ति सही है तो मुझे पोस्ट कोड के साथ एक जैसी समस्या होने लगती है। क्या आपने DataGridViewComboBoxCell और DataGridViewCheckboxCell जोड़ने के साथ मैन्युअल रूप से पंक्ति बनाने पर विचार किया था? हमारे पास एक जटिल जटिल DataGridViewUserControl है जहां हम गतिशील रूप से विभिन्न सेलटाइप जोड़ते हैं और उन्हें सही तरीके से प्रदर्शित करने में कोई समस्या नहीं है। लेकिन हम सभी पंक्तियों को मैन्युअल रूप से बनाते हैं, पंक्तियों में हाथ से तैयार सेल-प्रकार भरते हैं और कॉलम के लिए एक प्रकार निर्दिष्ट नहीं करते हैं।

+0

मुझे खेद है कि मुझे आपकी व्याख्या के साथ उलझन में लग रहा है। यहां बात है, डेटाग्रिड 2 एक खाली डाटाग्रिड है जिसे एक बार 2 कॉलम के साथ जोड़ा जाता है जब एक बार डेटाग्रिड 1 पर ईवेंट सेलक्लिक ट्रिगर होता है, कॉलम प्रकारों के साथ पंक्तियां उचित तरीके से जोड़ दी जाती हैं लेकिन कोई चयन नहीं होता है combobox कॉलम (कॉलम 1) और चेकबॉक्स बटन कॉलम 2 पर क्लिक करते समय कुछ भी नहीं होता है। मुझे लगता है कि सभी कॉलम प्रोग्रामेटिकल को जोड़ने का सबसे अच्छा तरीका होगा, लेकिन मुझे यकीन नहीं है कि मुझे यह समस्या क्यों है, आपके उत्तर के लिए आपके उत्तर के लिए thx – user2793090

1

ऐसा इसलिए है क्योंकि आपके DataTable में 2 columns है। लेकिन आप कॉलम 1 पर कक्षों के लिए केवल मान जोड़ते हैं, कॉलम 2 पर कक्ष (जिसका उपयोग के comboBox) के रूप में किया जाएगा) खाली मान हैं। बजाय इस प्रयास करें:

//..... 
data.Rows.Add("item1","This is Item1"); 
data.Rows.Add("item2","This is Item2"); 
data.Rows.Add("item3","This is Item3"); 
//..... 
+0

मैं आपके उत्तर की प्रशंसा करता हूं लेकिन यहां तक ​​कि इसे बदलने से कोई दुविधा नहीं होती है, मुझे लगता है कि समस्या इस तथ्य में पढ़ती है कि कॉम्बो किसी भी क्लिक घटना का जवाब नहीं दे रहा है या मैं कुछ भी नहीं समझता हूं – user2793090

+0

@ user2793090 क्षमा करें, ** मैंने इसका परीक्षण किया ** –

+0

मेरे डेटाग्रिड में कुछ सेटिंग गलत होनी चाहिए, कुछ संपत्ति, क्योंकि मैंने आपके द्वारा किए गए परिवर्तन किए हैं और मुझे अभी भी एक ही परिणाम मिल रहा है ... कोई विचार? – user2793090

2

आप डेटाटेबल में 2 कॉलम जोड़ रहे हैं, और केवल मूल्य सदस्य को भर रहे हैं। इस

 var column = new DataGridViewComboBoxColumn(); 

     DataTable data = new DataTable(); 

     data.Columns.Add(new DataColumn("Value", typeof(string))); 
     data.Columns.Add(new DataColumn("Description", typeof(string))); 

     data.Rows.Add("item1","123"); 
     data.Rows.Add("item2","234"); 
     data.Rows.Add("item3","245"); 

     column.DataSource = data; 
     column.ValueMember = "Value"; 
     column.DisplayMember = "Description"; 

     dataGridView1.Columns.Add(column); 
+0

thx, लेकिन मुझे अभी भी इस संशोधन के साथ एक ही परिणाम मिल रहा है – user2793090

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