我的 Windows 应用程序中有一个文本框。它只允许字母和数字。我想当我输入任何字母时,它应该转换为大写。我该怎么做?在什么情况下?我使用了 str.ToUpper() 但光标正在移动到字符串的开头。请给我解决方案。
9 回答
您只需要将 CharacterChasing 属性更改为Upper
.
textBox1.CharacterCasing = CharacterCasing.Upper
为什么要重新发明轮子,只需将 textBox 的“CharacterCasing”属性设置为“Upper”即可。您无需编写任何代码。
在屏蔽文本框的情况下,您可以使用“>”(在 mask 属性中)将以下字符变为大写。例如,对于长度为 8 的输入字母数字字符串 (AZ, 0-9),使用掩码 '>AAAAAAAA'。要仅限于字母 (AZ),请使用“>LLLLLLLL”。
您需要将结果分配ToUpper
回文本框:
txtBox.Text = txtBox.Text.ToUpper();
或者,将CharacterCasing
文本框的属性设置为Upper
:
txtBox.CharacterCasing = CharacterCasing.Upper;
在 TextBox 的属性中,只需将 CharacterCasing 设置为 Upper。它将所有输入的字符转换为大写。
尝试使用 KeyPress 事件,处理程序应类似于以下内容;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar= (e.KeyChar.ToString()).ToUpper().ToCharArray()[0];
}
private void mytextbox_KeyPress(object sender, KeyPressEventArgs e)
{
e.KeyChar = Char.ToUpper(e.KeyChar);
}
右键单击设计器中的 TextBox,在 Properties 下将 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;
}
}
// 添加定时器(在定时器中添加 this 下的代码(添加 add timer1.Start(); 在启动表单中)
private void timer1_Tick(object sender, EventArgs e)
{
DateTime datetime = DateTime.Now;
this.LblTime.Text = datetime.ToString();
}