我的用户可以在组合框中输入一些文字,但我希望这个文字会自动以大写字母显示(就像用户有大写字母一样)。任何想法如何做到这一点?
答案 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;
}
}