Windowsアプリケーションにテキストボックスがあります。アルファベットと数字のみを使用できます。アルファベットを入力するときはいつでも大文字に変換する必要がありますが、どのようにしてどのイベントでそれを行うことができますか? str.ToUpper()を使用しましたが、カーソルは文字列の先頭に移動しています。解決策を教えてください。
CharacterChasingプロパティをUpper
に変更するだけです。
textBox1.CharacterCasing = CharacterCasing.Upper
ホイールを再発明する理由は、textBoxの「CharacterCasing」プロパティを「Upper」に設定するだけです。コードを書く必要はありません。
マスクされたテキストボックスの場合、「マスク」プロパティで「>」を使用して、後続の文字を大文字にすることができます。例えば長さ8の入力英数字文字列(A〜Z、0〜9)の場合は、マスク '> AAAAAAAA'を使用します。文字のみ(A〜Z)に制限するには、「> LLLLLLLL」を使用します。
ToUpper
の結果をテキストボックスに戻す必要があります。
txtBox.Text = txtBox.Text.ToUpper();
または、テキストボックスの CharacterCasing
プロパティをUpper
に設定します。
txtBox.CharacterCasing = CharacterCasing.Upper;
KeyPressイベントを使用してみてください。ハンドラーは次のようになります。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar= (e.KeyChar.ToString()).ToUpper().ToCharArray()[0];
}
TextBoxのプロパティで、CharacterCasingを単にUpperに設定します。入力されたすべての文字を大文字に変換します。
たぶん、イベントを使用する必要があります:TextBox1_EditValueChanging。
カーソルが最初の位置に移動するたびに、txtの文字数を計算し、最後の文字の後にカーソルを移動できます。
//入力されたすべての文字の長さを表示
private void BtnLength_Click(object sender, EventArgs e)
{
LblLength.Text = TxtInput.Text.Length.ToString();
}
//文字を上位にする
private void btnUpper_Click(object sender, EventArgs e)
{
LblUpper.Text = TxtInput.Text.ToUpper();
}
//文字を小文字にする
private void BtnLower_Click(object sender, EventArgs e)
{
LblLower.Text = TxtInput.Text.ToLower();
}
//最後の3文字を表示
private void BtnRight_Click(object sender, EventArgs e)
{
LblRight.Text = TxtInput.Text.Substring(TxtInput.Text.Length - 3);
}
//位置1から3の文字を表示
private void BtnSubscript_Click(object sender, EventArgs e)
{
LblSubscript.Text = TxtInput.Text.Substring(1, 3);
}
// ASCII
private void BtnGo_Click(object sender, EventArgs e)
{
string name;
int letter;
name = TxtInput.Text;
for (int index = 0; index < name.Length; index++)
{
letter = name[index];
MessageBox.Show(letter.ToString());
}
}
//パスワード
int InNumTry = 0;
private void BtnGo_Click_1(object sender, EventArgs e)
{
string password;
password = TxtIn.Text;
switch (password)
{
case " ": MessageBox.Show("Passowrd is empty.");
break;
case "MIKE": MessageBox.Show("Password is OK!");
FrmBOO newForm = new FrmBOO();
newForm.Show();
break;
default:
InNumTry++;
MessageBox.Show("Invalid Passwrod, try again!");
TxtIn.Text = "";
TxtIn.Focus();
break;
}
if (InNumTry >= 3)
{
MessageBox.Show("You have tried too many times, have a good day.");
TxtIn.Enabled = false;
}
}
//タイマーの追加(タイマーで、この下にコードを追加(add add timer1.Start();開始フォームで)
private void timer1_Tick(object sender, EventArgs e)
{
DateTime datetime = DateTime.Now;
this.LblTime.Text = datetime.ToString();
}
private void mytextbox_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar = Char.ToUpper(e.KeyChar);
}
デザイナでTextBoxを右クリックし、[プロパティ]で[CharacterCasing]を[Upper]に変更します。