TextBox
一度に1 文字だけを受け入れるコントロールを作成する必要があります。たとえば、「aaa」と入力すると、「a」のみが受け入れられます。
どうすればこれを達成できますか?
TextBox にはMaxLength
プロパティがあります。MaxLength
テキスト ボックスに手動で入力できる最大文字数を取得または設定します。
<TextBox MaxLength="1" Width="120" Height="23" />
ここでは、手動で 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;
}
}
}
}