c# comboboxitem - Wie kann ich eine ComboBox in.NET nicht editierbar machen?




items add (5)

Ich möchte eine "Select-only" ComboBox , die eine Liste von Elementen für den Benutzer zur Auswahl bietet. Die Eingabe sollte im Textteil des ComboBox Steuerelements ComboBox .

Mein anfängliches Googlen dieser KeyPress ergab einen übermäßig komplexen, fehlgeleiteten Vorschlag, das KeyPress Ereignis KeyPress .


Answers

Um eine Visual Studio-GUI-Referenz hinzuzufügen, finden Sie die DropDownStyle Optionen unter den Eigenschaften der ausgewählten ComboBox:

Dies fügt automatisch die in der ersten Antwort erwähnte Zeile der Form.Designer.cs InitialComponent InitializeComponent() , etwa so:

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

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;


Um nach der Auswahl weiterhin Daten in der Eingabe anzuzeigen, tun Sie Folgendes:

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;
}

Bleiben Sie bei Ihrer ComboBox und suchen Sie die DropDropStyle-Eigenschaft im Eigenschaftenfenster und wählen Sie DropDownList .


Zuerst den ersten Wert abrufen (wäre 0)

NextValue();

Dann warte 1000 Milisec

Thread.Sleep(1000);

Rufen Sie dann den zweiten Wert ab, der die wahre CPU-Nutzung ist.

NextValue();

Der Code sollte folgendermaßen aussehen:

float perfCounterValue = perfCounter.NextValue();

//Thread has to sleep for at least 1 sec for accurate value.
System.Threading.Thread.Sleep(1000);

perfCounterValue = perfCounter.NextValue();

Console.WriteLine("Value: {0}", perfCounterValue);






c# .net winforms combobox