Ricerca…


Completamento automatico da una raccolta di stringhe

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

Ciò si completerà automaticamente come l'utente prova a digitare G o L.

AutoCompleteMode.SuggestAppend visualizzerà entrambi un elenco di valori suggeriti e digiterà automaticamente la prima corrispondenza, Append only e Suggest only sono disponibili.

Consenti solo cifre nel testo

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

Ciò consentirà solo l'uso di cifre e caratteri di controllo nel TextBox , altre combinazioni sono possibili utilizzando lo stesso approccio di impostare la proprietà Handle su true per bloccare il testo.

L'utente può ancora copiare / incollare caratteri indesiderati, quindi dovrebbe essere presente un controllo aggiuntivo su TextChanged per pulire l'input:

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

In questo esempio viene utilizzata un'espressione regolare per filtrare il testo.

NumericUpDown dovrebbe essere preferito per i numeri quando possibile.

Come scorrere fino alla fine

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

Applicando lo stesso principio, SelectionStart può essere impostato su 0 per scorrere verso l'alto o verso un numero specifico per passare a un carattere specifico.

Aggiunta di un segnaposto alla casella di testo

Questo codice posiziona il testo del suggerimento al caricamento del modulo e lo manipola come segue:

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow