c#windows格式为大写字母

c#windows格式为大写字母,c#,forms,combobox,C#,Forms,Combobox,我的用户可以在组合框中输入一些文本,但我希望这些文本自动以大写字母显示(就像用户打开了capslock一样)。有什么办法吗?您需要处理按键事件 private void ComboBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar >= 'a' && e.KeyChar <= 'z') e.KeyChar -= (char)32; } private void组合框

我的用户可以在组合框中输入一些文本,但我希望这些文本自动以大写字母显示(就像用户打开了capslock一样)。有什么办法吗?

您需要处理
按键事件

private void ComboBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar >= 'a' && e.KeyChar <= 'z')
        e.KeyChar -= (char)32;
}
private void组合框\u按键(对象发送器,按键事件参数e)
{

如果(e.KeyChar>='a'&&e.KeyChar,您可以注册到TextChanged事件并将文本转换为大写字母

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

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

关于

以下是我如何处理它的,它提供了比简单地替换整个文本更平滑的更改

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;
  }
}

@Edwin,no-KeyPressEventArgs既有getter又有setter。设置KeyChar从.NET 2.0开始是有效的。我不知道32。很好。