2012-08-23 14 views
5

मेरे पास कॉम्बो बॉक्स (विनफॉर्म) है। इस कॉम्बो बॉक्स में कुछ आइटम हैं (उदाहरण के लिए 1,2,3,4)।विनफॉर्म के कॉम्बो बॉक्स में पुराने चयनित इंडेक्स प्राप्त करना

अब, जब मैं इस कॉम्बो भीतर चयन को बदलने, मैं वर्ष सूचकांक और नया सूचकांक पता करना चाहते हैं।

मुझे यह कैसे प्राप्त होगा?

संभावित दृष्टिकोण जो मैं चाहता हूं AVOID

  1. एक घटना दर्ज करें, वर्तमान सूचकांक कैश और फिर चयन सूचकांक परिवर्तन पर नया सूचकांक मिलता है।

  2. घटना के प्रेषक द्वारा प्राप्त चयनित पाठ/चयनित आइटम संपत्ति का उपयोग करना।

क्या मैं आदर्श हैं:

  1. कि प्राप्त कर रहे हैं घटना args में, मैं की तरह कुछ हैं:

    e.OldIndex; e.newIndex;

    अभी इस घटना का तर्क है कि में चयन प्राप्त होता है चयन इंडेक्स चेंज इवेंट पूरी तरह से बेकार है।

  2. मैं एक से अधिक घटनाओं का उपयोग नहीं करना चाहता हूं।

  3. यदि सी #, यह पेशकश नहीं करता है, तो क्या मेरे पास ऐसा कार्यक्रम हो सकता है जो पुरानी अनुक्रमणिका और नई अनुक्रमणिका को घटना के अनुसार पास करता है?

+0

हाय निखिल, आप इसे एक चर का उपयोग करके और किसी भी घटना के बिना कर सकते हैं, अगर आप इस विचार से सहमत हैं कि मुझे कोड को उत्तर के रूप में पोस्ट करने के लिए कहें। –

+0

डेवएक्सप्रेस द्वारा कॉम्बोबॉक्स एडिट में एडिटवैल्यू चेंजिंग इवेंट है। अगर आप इंडेक्स के साथ कुछ भी नहीं करना चाहते हैं और सिर्फ टेक्स्ट प्रॉपर्टी चाहते हैं तो यह मानक कम्बोबॉक्स से बेहतर नियंत्रण है। Http://documentation.devexpress.com/#WindowsForms/DevExpressXtraEditorsBaseEdit_EditValueChangingtopic –

+1

संभावित कॉम्बोबॉक्स चयनित इंडेक्स चेंज इवेंट: पहले चयनित इंडेक्स कैसे प्राप्त करें?] (Http://stackoverflow.com/questions/3237885/combobox-selectedindexchanged- घटना है कि कैसे करने के लिए मिल-चयन आपने पिछली सूचकांक) – Rawling

उत्तर

6

लगता है इस तरह की एक संभव है नकल

ComboBox SelectedIndexChanged event: how to get the previously selected index?

में बनाया कुछ भी नहीं है, तो आप और इस घटना के लिए सुन एक वर्ग चर में ट्रैक रखने के लिए की आवश्यकता होगी नहीं है।

लेकिन इस सवाल का जवाब https://stackoverflow.com/a/425323/81053

0

पूर्णांकों का एक सूची
2-बाइंड पिछले करने के लिए स्विच करने के लिए एक बटन 1-बनाओ पिछले सूचकांक का ट्रैक रखने के बता गया प्रदान करने का एक समझदार तरीका सुझाने के लिए लगता है स्क्रीन (बटन का नाम "prevB")
3-बदल ComboBox सूचकांक के रूप में प्रति कोड में वर्णित

//initilize List and put current selected index in it 

List<int> previousScreen = new List<int>(); 
previousScreen.Add(RegionComboBox.SelectedIndex);  

//Button Event 
private void prevB_Click(object sender, EventArgs e) 
    { 
     if (previousScreen.Count >= 2) 
     { 
      RegionComboBox.SelectedIndex = previousScreen[previousScreen.Count - 2]; 
     } 
    } 
0

आप टी के साथ ComboBox की जगह की आवश्यकता होगी वह नियंत्रण का पालन करता है:

public class AdvancedComboBox : ComboBox 
{ 
    private int myPreviouslySelectedIndex = -1; 
    private int myLocalSelectedIndex = -1; 

    public int PreviouslySelectedIndex { get { return myPreviouslySelectedIndex; } } 

    protected override void OnSelectedIndexChanged(EventArgs e) 
    { 
     myPreviouslySelectedIndex = myLocalSelectedIndex; 
     myLocalSelectedIndex = SelectedIndex; 
     base.OnSelectedIndexChanged(e); 
    } 
} 

अब आप PreviouslySelectedIndex संपत्ति प्राप्त कर सकते हैं।

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