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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow