c #windows形成大写字母

时间:2011-08-30 20:29:01

标签: c# forms combobox

我的用户可以在组合框中输入一些文字,但我希望这个文字会自动以大写字母显示(就像用户有大写字母一样)。任何想法如何做到这一点?

4 个答案:

答案 0 :(得分:7)

您需要处理KeyPress事件。

private void ComboBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar >= 'a' && e.KeyChar <= 'z')
        e.KeyChar -= (char)32;
}

32只是小写和大写字母之间ASCII值的差异。

答案 1 :(得分:1)

您可以注册TextChanged事件并将文本转换为大写字母。

private void combobox_TextChanged(object sender, EventArgs e)
{
   string upper = combobox.Text.ToUpper();
   if(upper != combobox.Text)
      combobox.Text = upper;
}

答案 2 :(得分:1)

另一个例子

  private void TextBox_Validated(object sender, EventArgs e)
    {
        this.TextBox.Text = this.TextBox.Text.ToUpper();
    }

此致

答案 3 :(得分:0)

以下是我处理它的方式,它比简单地替换整个文本提供了更平滑的变化。

private void ComboBox_KeyPress(object sender, KeyPressEventArgs e)
{
  if (Char.IsLetter(e.KeyChar))
  {
    int p = this.SelectionStart;
    this.Text = this.Text.Insert(this.SelectionStart, Char.ToUpper(e.KeyChar).ToString());
    this.SelectionStart = p + 1;
  }
}