winforms
Tekstveld
Zoeken…
Automatische aanvulling van een verzameling strings
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);
Dit zal de auto automatisch aanvullen wanneer de gebruiker G of L probeert te typen.
AutoCompleteMode.SuggestAppend
zullen beide scherm een lijst met voorgestelde waarden en zal het automatisch typt u de eerste wedstrijd, Append
alleen en Suggest
alleen beschikbaar zijn, ook.
Sta alleen cijfers in de tekst toe
textBox.KeyPress += (sender, e) => e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);
Dit staat alleen het gebruik van cijfers en controletekens in de TextBox
, andere combinaties zijn mogelijk met dezelfde methode om de eigenschap Handle
in te stellen op true om de tekst te blokkeren.
De gebruiker kan nog steeds ongewenste tekens kopiëren / plakken, dus een extra controle op de TextChanged
moet de invoer TextChanged
:
textBox.TextChanged += (sender, e) => textBox.Text = Regex.Match(textBox.Text, @"\d+").Value
In dit voorbeeld wordt een reguliere expressie gebruikt om de tekst te filteren.
NumericUpDown verdient indien mogelijk de voorkeur voor nummers.
Hoe naar het einde te scrollen
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();
Volgens hetzelfde principe kan SelectionStart
worden ingesteld op 0
om naar boven te scrollen of op een specifiek nummer om naar een specifiek teken te gaan.
Een tijdelijke aanduiding toevoegen aan tekstvak
Deze code plaatst de hinttekst bij het laden van het formulier en manipuleert deze als volgt:
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