it-swarm-id.com

Bagaimana saya bisa membuat ComboBox yang tidak dapat diedit di .NET?

Saya ingin memiliki "select-only" ComboBox yang menyediakan daftar item untuk dipilih pengguna. Pengetikan harus dinonaktifkan di bagian teks dari kontrol ComboBox.

Googling awal saya tentang ini menghasilkan saran yang terlalu rumit dan salah arah untuk menangkap acara KeyPress.

194
Cory Engebretson

Untuk membuat bagian teks dari ComboBox tidak dapat diedit, setel properti DropDownStyle ke "DropDownList". ComboBox sekarang pada dasarnya hanya pilih untuk pengguna. Anda dapat melakukan ini di desainer Visual Studio, atau di C # seperti ini:

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

Tautan ke dokumentasi untuk properti ComboBox DropDownStyle di MSDN.

360
Cory Engebretson

Untuk menambahkan referensi Visual Studio GUI, Anda dapat menemukan opsi DropDownStyle di bawah Properti ComboBox yang dipilih:

enter image description here

Yang secara otomatis akan menambahkan baris yang disebutkan dalam jawaban pertama ke Form.Designer.cs InitializeComponent(), seperti:

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

Tetap di ComboBox Anda dan cari properti DropDropStyle dari jendela properti dan kemudian pilih DropDownList.

30
LZara

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

2

Untuk terus menampilkan data dalam input setelah memilih, lakukan itu:

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;
}
1
Diogo Rodrigues