2009-05-02 14 views
6

के अंदर बटन जोड़ना मैं एक सूची बॉक्स के साथ एक सी # ऐप (WinForm) लिख रहा हूं जिसमें उपयोगकर्ता द्वारा जोड़ा गया सामग्री है। अब, आइटम को हटाने के लिए सूची बॉक्स के नीचे मेरा एक साधारण बटन हो सकता है, लेकिन मैं सामग्री के बगल में बटन रखना चाहता हूं, इस प्रकार Listbox के अंदर होना।सी # - ListBox

इस तरह

:

  • सामग्री 1 | एक्स
  • सामग्री 2 | एक्स
  • ...
  • सामग्री 5 | एक्स

समस्या यह है कि मुझे .NET में अनुभव की कमी है, इसलिए मुझे कोई संकेत नहीं है कि यह सभी स्वचालित नियंत्रणों के साथ कैसे संभव होगा। मैंने इसे गुमराह किया है, लेकिन कोई सार्थक नतीजे नहीं आया।

इसे प्राप्त करने के लिए कोई संकेत, सुराग या स्निपेट स्वागत है! :)

+0

विन फॉर्म या एएसपी.नेट? – Canavar

+0

और मैं वास्तव में प्रश्न पढ़ने के लिए नीचे आ गया हूं ....: श्वास: –

+0

@ कानावर WinForms। @Deviant Downvoted? – Vectovox

उत्तर

3

तो कोई कस्टम नियंत्रण कर सकता है लेकिन मेरे ऐप के लिए यह वास्तव में परेशानी के लायक नहीं है।

मैंने डेटाग्रिड बनाने के लिए क्या किया था, इसे एक सूची दृश्य जैसा दिखता था लेकिन अपने स्वयं के भड़काने के साथ।मैंने ऐसा इसलिए किया क्योंकि डेटाग्रिड में पहले से ही इसके सेल में निर्मित बटन कंट्रोल है।

हाँ मुझे पता है, तरह का फगली "हैक" है, लेकिन यह एक आकर्षण की तरह काम करता है! :)

शैल एरलिचमेन की प्रॉप्स जिन्होंने मुझे मेरी सूची बॉक्स को बाहर निकालने में सोचने का नेतृत्व किया। देखो, वहां मैंने क्या किया था? ;)

+1

हां, डेटाग्रिड्स इसके लिए बहुत अच्छा काम करते हैं, हालांकि वे ListBox से अधिक जटिल हैं। आप इसे एचटीएमएल या कुछ समान शैली में एक टेबल की तरह दिख सकते हैं। –

0

मुझे नहीं पता कि आप विशेष रूप से ऐसा क्यों करना चाहते हैं? मैं नीचे एक बटन डालूंगा जो सूची बॉक्स में किसी भी चयनित आइटम को हटा देता है। यह तब तक ऐसा करने का सामान्य तरीका माना जाता है जब तक कि आप jquery का उपयोग नहीं करना चाहते हैं और ऑनबॉक्स ईवेंट को उस सूची बॉक्स पर रखना चाहते हैं जो आइटम को हटाने के लिए कॉल भेजता है या किसी पृष्ठ में सूची से आइटम को हटा देता है ।

+3

ठीक है, मैं सामान्य नहीं हूं और मैं अधिक उन्नत विकल्प के लिए जाना चाहता हूं। बात यह है कि पक्ष पर एक बटन (या आइकनबटन) आंखों के लिए अधिक प्रसन्न होता है और प्रति क्लिक एक क्लिक द्वारा क्लिककाउंट भी कम करता है। – Vectovox

1

मान लिया जाये कि यह एक WinForms अनुप्रयोग

है आपको लगता है कि के लिए एक कस्टम नियंत्रण की आवश्यकता होगी। मैं http://www.devexpress.com/Products/NET/Controls/WinForms/Editors/editors/ListBoxes.xml जैसे विक्रेताओं की जांच करता हूं शायद कोई ऐसे नियंत्रण के बारे में जानता है जो विशेष रूप से करता है। सिस्टम का उपयोग कर

+0

ठीक है, बस मुझे जो सुनने की ज़रूरत है, कस्टम नियंत्रण है :) – Vectovox

+0

आप अपना खुद का नियंत्रण कर सकते हैं, लेकिन यह एक छोटा काम नहीं है –

2

; System.Collections.Generic का उपयोग कर ; System.Windows.Forms का उपयोग कर ;

नाम स्थान WindowsFormsApplication11 { सार्वजनिक आंशिक वर्ग Form1: फार्म { सूची _items = नई सूची();

public Form1() 
    { 
     InitializeComponent(); 

     _items.Add("One"); 
     _items.Add("Two"); 
     _items.Add("Three"); 

     listBox1.DataSource = _items; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     // The Add button was clicked. 
     _items.Add("New item " + DateTime.Now.Second); 

     // Change the DataSource. 
     listBox1.DataSource = null; 
     listBox1.DataSource = _items; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     // The Remove button was clicked. 
     int selectedIndex = listBox1.SelectedIndex; 

     try 
     { 
      // Remove the item in the List. 
      _items.RemoveAt(selectedIndex); 
     } 
     catch 
     { 
     } 

     listBox1.DataSource = null; 
     listBox1.DataSource = _items; 
    } 
} 

}

private void button1_Click (वस्तु प्रेषक, EventArgs ई) { // जोड़ें बटन क्लिक किया गया था। // ...

button2.Enabled = true; 

}

निजी शून्य button2_Click (वस्तु प्रेषक, EventArgs ई) { // हटाएँ बटन पर क्लिक किया गया था। // ....

if (listBox1.Items.Count == 0) 
{ 
    button2.Enabled = false; 
} 

}

+0

प्रश्न को बेहतर पढ़ना चाहिए;) –

+0

हाँ, मुझे नहीं लगता कि आप मेरी पढ़ाई सवाल बहुत अच्छी तरह से :) – Vectovox

+0

@ एएलबी सवाल यह है कि "इस प्रकार सूची बॉक्स के अंदर होना"। वैसे भी listbox.datasource = सूची का यह तकनीकी स्पष्ट, जोड़ने से कहीं अधिक कॉम्पैक्ट है। तो अभी भी जवाब लायक है। – prabhakaran

6

ListBox के बजाय आप ListView उपयोग कर सकते हैं, ListView ability to add custom column types है।

+0

लिस्टबॉक्स और लिस्ट व्यू मील दूर आदमी हैं। शायद उसे अच्छी माप के लिए पेड़ नियंत्रण में फेंकना चाहिए –

+1

पूर्ण मोड के साथ हेडर के बिना रिपोर्ट मोड में ListView का चयन करें और ग्रिड लाइनें सूची बॉक्स के समान दिखती हैं और व्यवहार नहीं करती हैं। उप-आइटम के रूप में बटन (या उस मामले के लिए कोई अन्य नियंत्रण) जोड़ने के लिए और अधिक आसान है, फिर कस्टम नियंत्रण बनाने की कोशिश कर रहा है। –

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