winforms
Textfeld
Suche…
Automatische Vervollständigung aus einer Sammlung von Zeichenfolgen
var source = new AutoCompleteStringCollection();
// Add your collection of strings.
source.AddRange(new[] { "Guybrush Threepwood", "LeChuck" });
var textBox = new TextBox
{
AutoCompleteCustomSource = source,
AutoCompleteMode = AutoCompleteMode.SuggestAppend,
AutoCompleteSource = AutoCompleteSource.CustomSource
};
form.Controls.Add(textBox);
Dies wird automatisch abgeschlossen, wenn der Benutzer versucht, G oder L einzugeben .
AutoCompleteMode.SuggestAppend
wird sowohl eine Liste der vorgeschlagenen Werte angezeigt werden, und es wird das erste Spiel automatisch eingeben, Append
nur und Suggest
nur verfügbar sind, auch.
Erlaube nur Ziffern im Text
textBox.KeyPress += (sender, e) => e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);
Dies erlaubt nur die Verwendung von Ziffern und Steuerzeichen in der TextBox
. Andere Kombinationen sind möglich, TextBox
die Eigenschaft Handle
auf true setzen, um den Text zu blockieren.
Der Benutzer kann weiterhin unerwünschte Zeichen kopieren / einfügen. TextChanged
sollte der TextChanged
zusätzlich überprüft werden, um die Eingabe zu TextChanged
:
textBox.TextChanged += (sender, e) => textBox.Text = Regex.Match(textBox.Text, @"\d+").Value
In diesem Beispiel wird ein regulärer Ausdruck verwendet, um den Text zu filtern.
NumericUpDown sollte möglichst für Zahlen bevorzugt werden.
So blättern Sie bis zum Ende
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();
Nach demselben Prinzip kann SelectionStart
auf 0
gesetzt werden, um nach oben zu scrollen, oder zu einer bestimmten Zahl, um zu einem bestimmten Zeichen zu gelangen.
Platzhalter in ein Textfeld einfügen
Dieser Code setzt den Hinweistext beim Laden des Formulars ein und ändert ihn wie folgt:
C #
private void Form_load(object sender, EventArgs e)
{
textBox.Text = "Place Holder text...";
}
private void textBox_Enter(object sender, EventArgs e)
{
if(textBox.Text == "Place Holder text...")
{
textBox.Text = "";
}
}
private void textBox_Leave(object sender, EventArgs e)
{
if(textBox.Text.Trim() == "")
{
textBox.Text = "Place Holder text...";
}
}
VB.NET
Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
textBox.Text = "Place Holder text..."
End Sub
Private Sub textBox_GotFocus(sender as Object,e as EventArgs) Handles textBox.GotFocus
if Trim(textBox.Text) = "Place Holder text..." Then
textBox.Text = ""
End If
End Sub
Private Sub textBox_LostFocus(sender as Object,e as EventArgs) Handles textBox.LostFocus
if Trim(textBox.Text) = "" Then
textBox.Text = "Place Holder text..."
End If
End Sub