23

我的 Windows 应用程序中有一个文本框。它只允许字母和数字。我想当我输入任何字母时,它应该转换为大写。我该怎么做?在什么情况下?我使用了 str.ToUpper() 但光标正在移动到字符串的开头。请给我解决方案。

4

9 回答 9

63

您只需要将 CharacterChasing 属性更改为Upper.

textBox1.CharacterCasing = CharacterCasing.Upper
于 2012-04-11T10:56:00.067 回答
11

为什么要重新发明轮子,只需将 textBox 的“CharacterCasing”属性设置为“Upper”即可。您无需编写任何代码。

将 textBox 中的字母设为大写

在屏蔽文本框的情况下,您可以使用“>”(在 mask 属性中)将以下字符变为大写。例如,对于长度为 8 的输入字母数字字符串 (AZ, 0-9),使用掩码 '>AAAAAAAA'。要仅限于字母 (AZ),请使用“>LLLLLLLL”。

将 maskedTextBox 中的字母设为大写

于 2015-01-24T07:07:50.610 回答
8

您需要将结果分配ToUpper回文本框:

txtBox.Text = txtBox.Text.ToUpper();

或者,将CharacterCasing文本框的属性设置为Upper

txtBox.CharacterCasing = CharacterCasing.Upper;
于 2012-04-11T10:55:35.870 回答
3

在 TextBox 的属性中,只需将 CharacterCasing 设置为 Upper。它将所有输入的字符转换为大写。

于 2012-04-11T15:49:21.277 回答
2

尝试使用 KeyPress 事件,处理程序应类似于以下内容;

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.KeyChar= (e.KeyChar.ToString()).ToUpper().ToCharArray()[0];
        }
于 2012-04-11T10:56:33.617 回答
2
private void mytextbox_KeyPress(object sender, KeyPressEventArgs e)

{

e.KeyChar = Char.ToUpper(e.KeyChar);

}
于 2012-04-11T10:59:35.957 回答
1

右键单击设计器中的 TextBox,在 Properties 下将 CharacterCasing 更改为 Upper。

于 2014-10-24T12:30:31.157 回答
0

也许您应该使用事件:TextBox1_EditValueChanging。

如果每次光标移动到第一个位置,您可以计算txt中的字符数并将光标移到最后一个字符之后。

于 2012-04-11T10:58:44.327 回答
0
  1. TxtInput //这是用户输入的文本框
  2. LblLengthstrong //标签显示长度
  3. LblUpper //以大写形式显示的标签
  4. LblLower //以小写形式显示的标签
  5. LblRight //显示最后 3 个字符的标签
  6. 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();
        }
于 2014-04-03T01:36:35.310 回答