winforms
Caja de texto
Buscar..
Autocompletar a partir de una colección de cadenas
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);
Esto se completará automáticamente cuando el usuario intente escribir G o L.
AutoCompleteMode.SuggestAppend
Se mostrará tanto una lista de valores sugeridos y se auto escriba el primer partido, Append
solamente y Suggest
solamente están disponibles, también.
Permitir sólo dígitos en el texto.
textBox.KeyPress += (sender, e) => e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);
Esto solo permitirá el uso de dígitos y caracteres de control en el TextBox
, otras combinaciones son posibles utilizando el mismo método de configuración de la propiedad Handle
en true para bloquear el texto.
El usuario todavía puede copiar / pegar caracteres no deseados, por lo que debería haber una verificación adicional en TextChanged
para limpiar la entrada:
textBox.TextChanged += (sender, e) => textBox.Text = Regex.Match(textBox.Text, @"\d+").Value
En este ejemplo, una expresión regular se utiliza para filtrar el texto.
NumericUpDown debería preferirse a los números cuando sea posible.
Cómo desplazarse hasta el final.
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();
Aplicando el mismo principio, SelectionStart
se puede establecer en 0
para desplazarse a la parte superior o a un número específico para ir a un carácter específico.
Agregar un marcador de posición al cuadro de texto
Este código coloca el texto de la pista en el formulario de carga y lo manipula de la siguiente manera:
DO#
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