winforms
Pole tekstowe
Szukaj…
Automatyczne uzupełnianie z kolekcji ciągów znaków
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);
Spowoduje to automatyczne uzupełnienie, gdy użytkownik spróbuje wpisać G lub L.
AutoCompleteMode.SuggestAppend
wyświetli zarówno listę sugerowanych wartości, jak i automatycznie wpisuje pierwsze dopasowanie, dostępne są tylko Append
i Suggest
.
Zezwalaj tylko na cyfry w tekście
textBox.KeyPress += (sender, e) => e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);
Pozwoli to tylko na użycie cyfr i znaków kontrolnych w TextBox
, inne kombinacje są możliwe przy użyciu tego samego podejścia, dla ustawienia właściwości Handle
na true, aby zablokować tekst.
Użytkownik może nadal kopiować / wklejać niechciane znaki, dlatego należy dodatkowo sprawdzić TextChanged
aby wyczyścić dane wejściowe:
textBox.TextChanged += (sender, e) => textBox.Text = Regex.Match(textBox.Text, @"\d+").Value
W tym przykładzie do filtrowania tekstu zastosowano wyrażenie regularne .
NumericUpDown powinien być preferowany dla liczb, jeśli to możliwe.
Jak przewinąć do końca
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();
Stosując tę samą zasadę, SelectionStart
można ustawić na 0
aby przewinąć do góry lub do określonej liczby, aby przejść do określonego znaku.
Dodawanie symbolu zastępczego do pola tekstowego
Ten kod umieszcza tekst wskazówki przy ładowaniu formularza i manipuluje nim w następujący sposób:
DO#
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