सी # के लिए कॉम्बोक्स में तत्वों के संपादन को कैसे अक्षम करें?


157

मेरे पास ComboBox (C # के साथ WinForms) में कुछ तत्व हैं। मैं चाहता हूं कि उनकी सामग्री स्थिर हो, ताकि उपयोगकर्ता एप्लिकेशन के चलने पर अंदर के मूल्यों को बदल न सके। मैं यह भी नहीं चाहता कि उपयोगकर्ता कॉम्बो बॉक्स में नए मूल्य जोड़े

जवाबों:


300

ComboStyle संपत्ति का उपयोग करें:

comboBox.DropDownStyle = ComboBoxStyle.DropDownList;

38
इसे डिज़ाइनर के गुण विंडो में भी सेट किया जा सकता है।
जेफरी

3
हाल के संस्करणों के साथ आप उपयोग कर सकते हैंcombo.Properties.TextEditStyle = DisableTextEditor
कीशरपनेर 17

21

यह एक और तरीका है जिसका उपयोग मैं करता हूं क्योंकि यह 3D और कभी-कभी इसके सीधे सादे बदसूरत दिखने के DropDownSyleलिए बदल जाता DropDownListहै।

आप KeyPressइस तरह से ComboBox की घटना को संभालकर उपयोगकर्ता इनपुट को रोक सकते हैं ।

private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
      e.Handled = true;
}

4
आप डिजाइनर में अपनी उपस्थिति बदल सकते हैं, FlatStyle :)
StinkyCat

3
@StinkyCat पॉप अप सूची के रूप को नहीं बदलता है, केवल फॉर्म में नियंत्रण।
लॉगर

आपको राइट क्लिक मेनू को हैंडल करना है जहां आपके पास विकल्प Pasteभी है। मुझे नहीं पता कि अभी कैसे।
सिनत्र

3
ठीक है, हटाने के लिए Pasteआपको नकली खाली संदर्भ मेनू बनाना होगा और इसे कॉम्बो बॉक्स में असाइन करना होगा।
सिनत्र

7

Yow DropDownStyle को DropDownList के गुणों में बदल सकता है। यह टेक्स्टबॉक्स को फ़िल्टर के लिए नहीं दिखाएगा।

DropDownStyle संपत्ति
(स्क्रीनशॉट CHA0S द्वारा प्रदान किया गया ।)


0

मैंने ComboBox1_KeyPress की कोशिश की, लेकिन यह चरित्र को हटाने की अनुमति देता है और आप कॉपी पेस्ट कमांड का भी उपयोग कर सकते हैं। मेरा DropDownStyle DropDownList पर सेट है लेकिन फिर भी कोई फायदा नहीं हुआ। इसलिए मैंने कॉम्बोक्स पाठ संपादन से बचने के लिए कदम नीचे किया।

  • नीचे दिए गए कोड हैंडल डिलीट और बैकस्पेस कुंजी। और नियंत्रण कुंजी के साथ संयोजन को भी निष्क्रिय करता है (जैसे ctr + C या ctr + X)

     Private Sub CmbxInType_KeyDown(sender As Object, e As KeyEventArgs) Handles CmbxInType.KeyDown
        If e.KeyCode = Keys.Delete Or e.KeyCode = Keys.Back Then 
            e.SuppressKeyPress = True
        End If
    
        If Not (e.Control AndAlso e.KeyCode = Keys.C) Then
            e.SuppressKeyPress = True
        End If
    End Sub
  • माउस क्लिक के माध्यम से कट / पेस्ट से बचने के लिए कॉम्बोक्स नियंत्रण पर राइट क्लिक को अक्षम करने के लिए लाइन के नीचे लोड उपयोग में।

    CmbxInType.ContextMenu = new ContextMenu()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.