Sök…


Automatisk slutförande från en samling strängar

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

Detta kommer automatiskt att fylla i när användaren försöker skriva G eller L.

AutoCompleteMode.SuggestAppend kommer båda att visa en lista med förslag på värden och det kommer automatiskt skriver den första matchen, Append bara och Suggest endast finns också.

Tillåt endast siffror i texten

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

Detta tillåter endast användning av siffror och kontrolltecken i TextBox , andra kombinationer är möjliga med samma tillvägagångssätt för att ställa in Handle egenskapen till true för att blockera texten.

Användaren kan fortfarande kopiera / klistra in oönskade tecken så en ytterligare kontroll bör finnas på TextChanged att rensa ingången:

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

I det här exemplet används ett regelbundet uttryck för att filtrera texten.

NumericUpDown bör föredras för siffror när det är möjligt.

Hur man bläddrar till slutet

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

Med samma princip kan SelectionStart ställas in på 0 att bläddra till toppen eller till ett specifikt nummer för att gå till ett specifikt tecken.

Lägga till en platshållare i textrutan

Den här koden placerar antydningstexten vid formbelastning och manipulerar den på följande sätt:

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow