मैं .NET में एक कॉम्बो बॉक्स गैर-संपादन योग्य कैसे बना सकता हूं?


205

मैं एक "सिलेक्ट-ओनली" रखना चाहता हूं ComboBoxजो उपयोगकर्ता को चयन करने के लिए वस्तुओं की एक सूची प्रदान करता है। टाइपिंग को ComboBoxनियंत्रण के पाठ भाग में अक्षम किया जाना चाहिए ।

इस KeyPressघटना को पकड़ने के लिए मेरे प्रारंभिक गुगली ने एक अत्यधिक जटिल, गुमराह करने वाला सुझाव दिया ।

जवाबों:


378

ComboBox गैर-संपादन योग्य का पाठ भाग बनाने के लिए, DropDownStyle गुण को "DropDownList" पर सेट करें। ComboBox अब अनिवार्य रूप से उपयोगकर्ता के लिए केवल चयन है। आप इसे विज़ुअल स्टूडियो डिज़ाइनर में, या C # में इस तरह से कर सकते हैं:

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

MSDN पर ComboBox DropDownStyle संपत्ति के लिए दस्तावेज़ से लिंक करें ।


8
एक बात को ध्यान में रखते हुए इसका मतलब है कि आप अब Textसंपत्ति को प्रोग्रामेटिक रूप से अपडेट नहीं कर सकते हैं, इसका उपयोग एक डिफ़ॉल्ट संदेश का उपयोग करने के लिए कर रहा थाComboBox.SelectedIndex = -1;
Lankymart

क्या GUI के माध्यम से विजुअल C # के माध्यम से इसे कोड में एडिट किए बिना ऐसा करने का कोई तरीका है? एक 'डिफ़ॉल्ट मान' की तरह लगता है एक सामान्य बात के लिए सेट अप करना होगा
muzzlator

6
मैं ग्रे दिखने से कैसे बचूँ?
एंडर्स लिंडन

2
@ एंडर्स लिंडन ने फ्लैट के लिए संपत्ति फ्लैटसाइल सेट की।
Xam

@Xam तो सीमा कहां जाती है? थोड़ा गुगली करते समय, ऐसा लगता है कि मुझे यह स्वीकार्य होने के लिए ड्राइंग खुद करना होगा।
एंडर्स लिंडन

67

Visual Studio GUI संदर्भ जोड़ने के लिए, आप DropDownStyleचयनित ComboBox के गुणों के तहत विकल्प पा सकते हैं :

यहां छवि विवरण दर्ज करें

जो कि Form.Designer.cs के पहले उत्तर में उल्लिखित पंक्ति को स्वचालित रूप से जोड़ देगा InitializeComponent(), जैसे:

this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;

33

अपने ComboBox पर रहें और गुण विंडो से DropDropStyle गुण खोजें और फिर DropDownList चुनें ।



1

चयन करने के बाद इनपुट में डेटा प्रदर्शित करना जारी रखने के लिए, ऐसा करें:

VB.NET
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
    e.Handled = True
End Sub



C#
Private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.