Recherche…


Complétion automatique à partir d'une collection de chaînes

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

Cela va se compléter automatiquement lorsque l'utilisateur essaie de taper G ou L.

AutoCompleteMode.SuggestAppend affichera tous les deux une liste de valeurs suggérées et il saisira automatiquement la première correspondance, Append uniquement et Suggest uniquement sont également disponibles.

Autoriser uniquement les chiffres dans le texte

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

Cela permettra uniquement l'utilisation de chiffres et de caractères de contrôle dans la zone de TextBox , d'autres combinaisons sont possibles en utilisant la même approche pour définir la propriété Handle sur true pour bloquer le texte.

L'utilisateur peut toujours copier / coller des caractères indésirables afin qu'une vérification supplémentaire soit effectuée sur le TextChanged pour nettoyer l'entrée:

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

Dans cet exemple, une expression régulière est utilisée pour filtrer le texte.

NumericUpDown devrait être préféré pour les nombres si possible.

Comment faire défiler jusqu'à la fin

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

En appliquant le même principe, SelectionStart peut être défini sur 0 pour faire défiler vers le haut ou vers un numéro spécifique pour accéder à un caractère spécifique.

Ajout d'un espace réservé à la zone de texte

Ce code place le texte de conseil au chargement du formulaire et le manipule comme suit:

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow