द्वारा एक सूची बॉक्स आइटम के लिए मूल्य प्राप्त करें यह बहुत आसान होना चाहिए लेकिन मैं अटक गया हूं। मेरे पास एक्स आइटम के साथ एक सूची बॉक्स है। प्रत्येक आइटम में एक टेक्स्ट विवरण होता है (जो सूची बॉक्स में दिखाई देता है) और इसका मान (संख्यात्मक) होता है। मैं आइटम की अनुक्रमणिका संख्या का उपयोग कर किसी आइटम की मूल्य संपत्ति प्राप्त करने में सक्षम होना चाहता हूं।सूचकांक
सूचकांक
उत्तर
यह मेरे लिए काम करता है:
ListBox x = new ListBox();
x.Items.Add(new ListItem("Hello", "1"));
x.Items.Add(new ListItem("Bye", "2"));
Console.Write(x.Items[0].Value);
जहां तक मुझे पता है, 'ListBox.Items' प्रकार' System.Windows.Forms.ListBox.ObjectCollection' का अर्थ है जिसका अर्थ है 'ListBox.Items [अनुक्रमणिका]' एक ऑब्जेक्ट है जिसमें वैल्यू प्रॉपर्टी नहीं है !! –
यह वेबफॉर्म के लिए एक जवाब था, क्योंकि वह सेटिंग टेक्स्ट और वैल्यू का जिक्र कर रहा है, जिसने मुझे वेबफॉर्म मान लिया, न कि WinForms। – DaveShaw
मान लीजिए आप पहले आइटम के मूल्य चाहते हैं।
ListBox list = new ListBox();
Console.Write(list.Items[0].Value);
आप एक विंडोज़ रूपों पर काम कर रहे हैं, तो परियोजना आप निम्नलिखित की कोशिश कर सकते हैं:
ListBox
KeyValuePair
के रूप में वस्तुओं के लिए आइटम जोड़ें:
listBox.Items.Add(new KeyValuePair(key, value);
उसके बाद आप उन्हें पुनः प्राप्त करने में सक्षम हो जाएगा निम्न तरीका:
KeyValuePair keyValuePair = listBox.Items[index];
var value = keyValuePair.Value;
मैं एक बांध का उपयोग कर रहा हूँ इसके पीछे एक SqlDataReader के साथ ingSource और मेरे लिए उपरोक्त में से कोई भी काम नहीं करता है। माइक्रोसॉफ्ट के लिए
प्रश्न: क्यों यह काम करता है:
? lst.SelectedValue
लेकिन यह नहीं करता है?
? ((System.Data.Common.DbDataRecord)_bsBlocks[80])["BlockKey"]
अब जब कि सिर्फ है:
? lst.Items[80].Value
मैं मैं, BindingSource वस्तु को वापस जाने के लिए एक System.Data.Common.DbDataRecord के रूप में यह डाली, और उसके बाद अपने स्तंभ नाम का उल्लेख है लगता है हास्यास्पद।
वैकल्पिक रूप से मुझे लगता है कि मैं आइटम संग्रह के माध्यम से पुन: प्रयास कर सकता हूं, प्रत्येक आइटम का चयन कर सकता हूं और फिर चयनित वैल्यू प्राप्त कर सकता हूं। लेकिन मुझे ऐसा करने की ज़रूरत नहीं है, और यह किसी भी तरह की कड़वाहट है। –
' 'ListBox' का आइटम संग्रह संग्रह ऑब्जेक्ट का है और इसमें 'Value' प्रॉपर्टी नहीं है। आइटम' DataRowView' हो सकता है, एक जटिल वस्तु या प्राथमिक प्रकार। मान को 'ValueMember' प्रॉपर्टी का उपयोग करके गणना की जानी चाहिए, वैसे ही' चयनित वैल्यू 'काम करता है। –
यह होगा
String MyStr = ListBox.items[5].ToString();
आइटम 'DataRowView' या कॉम्प्लेक्स ऑब्जेक्ट या अन्य प्रकार हो सकते हैं। किसी आइटम के अंतर्निहित मूल्य को 'ValueMember' पर आधार की गणना की जानी चाहिए। –
यहाँ मैं इस प्रश्न के लिए एक भी सही उत्तर (WinForms टैग में) नहीं देख सकते हैं और यह इस तरह बार-बार प्रश्न के लिए अजीब बात है।
ListBox
नियंत्रण के आइटम DataRowView
, कॉम्प्लेक्स ऑब्जेक्ट्स, बेनामी प्रकार, प्राथमिक प्रकार और अन्य प्रकार हो सकते हैं। किसी आइटम के अंतर्निहित मूल्य की गणना ValueMember
पर की जानी चाहिए।
ListBox
नियंत्रण में GetItemText
है जो आइटम के रूप में जोड़े गए ऑब्जेक्ट के प्रकार के बावजूद आइटम टेक्स्ट प्राप्त करने में आपकी सहायता करता है। इसे वास्तव में GetItemValue
विधि की आवश्यकता है।
GetItemValue एक्सटेंशन विधि
हम बना सकते हैं GetItemValue
extension method आइटम मूल्य जो GetItemText
तरह काम करता है पाने के लिए:
using System;
using System.Windows.Forms;
using System.ComponentModel;
public static class ListControlExtensions
{
public static object GetItemValue(this ListControl list, object item)
{
if (item == null)
throw new ArgumentNullException("item");
if (string.IsNullOrEmpty(list.ValueMember))
return item;
var property = TypeDescriptor.GetProperties(item)[list.ValueMember];
if (property == null)
throw new ArgumentException(
string.Format("item doesn't contain '{0}' property or column.",
list.ValueMember));
return property.GetValue(item);
}
}
विधि से ऊपर का उपयोग करके आप ListBox
और यह की सेटिंग के बारे में चिंता करने की जरूरत नहीं एक आइटम के लिए अपेक्षित Value
वापस आ जाएगा।यह List<T>
, Array
, ArrayList
, DataTable
, बेनामी प्रकारों की सूची, प्राथमिक प्रकारों की सूची और अन्य सभी सूचियों के साथ काम करता है जिनका आप डेटा स्रोत के रूप में उपयोग कर सकते हैं। ।
//Gets underlying value at index 2 based on settings
this.listBox1.GetItemValue(this.listBox1.Items[2]);
हम बनाया एक विस्तार विधि, जब आप विधि का उपयोग करना चाहते हैं, मत भूलना नाम स्थान है जो आप में वर्ग डाल शामिल करने के लिए के रूप में GetItemValue
विधि के बाद से
यह विधि ComboBox
और CheckedListBox
पर भी लागू होती है।
बस कोशिश यह लिस्टबॉक्स अपनी सूची है और यू सूचकांक 0 पर मूल्य जो करने के लिए एक veriable आवंटित किया जाएगा
string yu = listBox1.Items[0].ToString();
MessageBox.Show(yu);
- 1. सूचकांक बनाम सूचकांक स्कैन
- 2. सूचकांक
- 3. एसक्यूएल सर्वर क्लस्टर सूचकांक सूचकांक प्रश्न
- 4. सी ++ सरणी [सूचकांक] सूचकांक बनाम [सरणी]
- 5. MongoDB - अद्वितीय सूचकांक बनाम यौगिक सूचकांक
- 6. MongoDB - सूचकांक
- 7. $ सूचकांक बाध्यकारी
- 8. भारी सूचकांक
- 9. सरणी सूचकांक
- 10. चरणबद्ध सूचकांक
- 11. सूचकांक :: सूची
- 12. Git - सूचकांक
- 13. सूचकांक (PHP)
- 14. निर्दिष्ट सूचकांक
- 15. वैकल्पिक सूचकांक
- 16. ढूँढना सूचकांक
- 17. ग्रोवी, सूचकांक
- 18. MySQL सूचकांक
- 19. xpath सूचकांक
- 20. 1 डी सरणी सूचकांक 2 डी सरणी सूचकांक
- 21. सूचकांक कब, Mongoid में क्या सूचकांक करना है?
- 22. सूचकांक से क्यों समावेशी है लेकिन अंत सूचकांक अनन्य है?
- 23. "जेड सूचकांक" WinForms
- 24. पहली सूचकांक PHP
- 25. डेटाबेस सूचकांक: क्यों जोड़ना
- 26. अपरिभाषित सूचकांक: PHP स्क्रिप्ट
- 27. z- सूचकांक निरपेक्ष स्थिति
- 28. कोई सूचकांक नहीं! =?
- 29. AS3 सरणी सूचकांक
- 30. git grep - लेकिन सूचकांक
WPF, WinForms, Silverlight या ASP.NET है? –
कुछ टैग जोड़ें जो आप उपयोग कर रहे हैं, जैसे डैनियल हिल्गार्थ ने ऊपर कहा था। –
क्या आप _windows form_ एप्लिकेशन पर काम कर रहे हैं ?? –