Windows アプリケーションにテキスト ボックスがあります。アルファベットと数字のみを許可します。アルファベットを入力するたびに、大文字に変換する必要があります。どのようにすれば、どのイベントでそれを行うことができますか? str.ToUpper() を使用しましたが、カーソルが文字列の先頭に移動しています。解決策を教えてください。
9 に答える
CharacterChasing プロパティを に変更するだけですUpper
。
textBox1.CharacterCasing = CharacterCasing.Upper
ToUpper
backの結果をテキスト ボックスに割り当てる必要があります。
txtBox.Text = txtBox.Text.ToUpper();
CharacterCasing
または、テキスト ボックスのプロパティを次のように設定しUpper
ます。
txtBox.CharacterCasing = CharacterCasing.Upper;
TextBoxのプロパティで、CharacterCasingをUpperに設定するだけです。入力したすべての文字を大文字に変換します。
private void mytextbox_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar = Char.ToUpper(e.KeyChar);
}
KeyPress イベントを使用してみると、ハンドラーは次のようになります。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar= (e.KeyChar.ToString()).ToUpper().ToCharArray()[0];
}
デザイナで TextBox を右クリックし、[プロパティ] で [CharacterCasing] を [Upper] に変更します。
たぶん、イベントTextBox1_EditValueChangingを使用する必要があります。
カーソルが最初の位置に移動するたびに、txtの文字数を計算し、最後の文字の後にカーソルを移動できます。
- TxtInput //これはテキストボックスのユーザー入力です
- LblLengthstrong //長さを示すラベル
- LblUpper //大文字で表示するラベル
- LblLower //小文字で表示するラベル
- LblRight //最後の 3 文字を表示するラベル
- LblSubscript //文字 1 ~ 3 を示すラベル
// 入力されたすべての文字の長さを表示
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 timer1.Start(); を追加します)
private void timer1_Tick(object sender, EventArgs e)
{
DateTime datetime = DateTime.Now;
this.LblTime.Text = datetime.ToString();
}