Поиск…


Автозаполнение из набора строк

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

Это будет автоматически заполнено, когда пользователь попытается ввести G или L.

AutoCompleteMode.SuggestAppend отобразит список предлагаемых значений, и он будет автоматически печатать первое совпадение, только Append и Suggest .

Разрешить только цифры в тексте

textBox.KeyPress += (sender, e) => e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);

Это позволит использовать только цифры и управляющие символы в TextBox , возможны другие комбинации, используя тот же подход, что и свойство Handle для true для блокировки текста.

Пользователь все равно может копировать / вставлять нежелательные символы, поэтому дополнительная проверка должна выполняться в TextChanged для очистки ввода:

textBox.TextChanged += (sender, e) => textBox.Text = Regex.Match(textBox.Text, @"\d+").Value

В этом примере для фильтрации текста используется регулярное выражение .

NumericUpDown должно быть предпочтительным для чисел, когда это возможно.

Как прокрутить до конца

textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();

Применяя тот же принцип, SelectionStart может быть установлен в 0 для прокрутки вверх или до определенного номера, чтобы перейти к определенному символу.

Добавление заполнитель в текстовое поле

Этот код помещает текст подсказки при загрузке формы и манипулирует им следующим образом:

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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow