我需要让TextBox
控件一次只接受一个字符。例如,如果我输入“aaa”,那么它只会接受“a”。
我该如何做到这一点?
答案 0 :(得分:1)
TextBox具有MaxLength
属性。 MaxLength
获取或设置可手动输入文本框的最大字符数。
<TextBox MaxLength="1" Width="120" Height="23" />
所以在这里,你只能手动输入一个字符。
答案 1 :(得分:1)
如果我理解正确,您不希望用户能够连续多次输入相同的密钥。这应该可以防止:
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
TextBox textBox = sender as TextBox;
if(textBox != null)
{
if (!String.IsNullOrEmpty(textBox.Text))
{
//get the last character and convert it to a key
char prevChar = textBox.Text[textBox.Text.Length - 1];
Keys k = (Keys)char.ToUpper(prevChar);
//compare the Key pressed to the previous Key
if (e.KeyData == k)
{
//suppress the keypress if the key is the same as the previous one
e.SuppressKeyPress = true;
}
}
}
}