ฉันต้องการมี "select-only" ComboBox
ที่ให้รายการของรายการสำหรับผู้ใช้เพื่อเลือกจาก การพิมพ์ควรถูกปิดใช้งานในส่วนข้อความของตัวComboBox
ควบคุม
googling ครั้งแรกของฉันทำให้เกิดข้อเสนอแนะที่เข้าใจผิดและซับซ้อนเกินกว่าจะจับKeyPress
เหตุการณ์ได้
ฉันต้องการมี "select-only" ComboBox
ที่ให้รายการของรายการสำหรับผู้ใช้เพื่อเลือกจาก การพิมพ์ควรถูกปิดใช้งานในส่วนข้อความของตัวComboBox
ควบคุม
googling ครั้งแรกของฉันทำให้เกิดข้อเสนอแนะที่เข้าใจผิดและซับซ้อนเกินกว่าจะจับKeyPress
เหตุการณ์ได้
คำตอบ:
ในการทำให้ส่วนข้อความของ ComboBox ไม่สามารถแก้ไขได้ให้ตั้งค่าคุณสมบัติ DropDownStyle เป็น "DropDownList" ComboBox ตอนนี้เป็นหลักที่เลือกอย่างเดียวสำหรับผู้ใช้ คุณสามารถทำได้ในตัวออกแบบ Visual Studio หรือใน C # ดังนี้
stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
เชื่อมโยงไปยังเอกสารประกอบสำหรับคุณสมบัติ ComboBox DropDownStyleบน MSDN
ในการเพิ่มการอ้างอิง Visual Studio GUI คุณสามารถค้นหาDropDownStyle
ตัวเลือกภายใต้คุณสมบัติของ ComboBox ที่เลือก:
ซึ่งจะเพิ่มบรรทัดที่กล่าวถึงโดยอัตโนมัติในคำตอบแรกไปที่ Form.Designer.cs InitializeComponent()
เช่น:
this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
อยู่ใน ComboBox ของคุณและค้นหาคุณสมบัติ DropDropStyle จากหน้าต่างคุณสมบัติแล้วเลือกDropDownList
COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;
หากต้องการแสดงข้อมูลในอินพุตต่อไปหลังจากเลือกให้ทำดังนี้:
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;
}
Text
คุณสมบัติของโปรแกรมได้อีกต่อไปคือใช้เพื่อแสดงข้อความเริ่มต้นโดยใช้ComboBox.SelectedIndex = -1;