Jeśli trzeba to zrobić ręcznie, można użyć
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
textBox3.Text += e.KeyChar.ToString().ToUpper();
textBox3.SelectionStart = textBox3.Text.Length;
e.Handled = true;
}
Ale poprzedzający kod wstawia nową postać na końcu tekstu. Jeśli chcesz, aby wstawić go na którym znajduje się kursor:
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
int selStart = textBox3.SelectionStart;
textBox3.Text = textBox3.Text.Insert(selStart,e.KeyChar.ToString().ToUpper());
textBox3.SelectionStart = selStart + 1;
e.Handled = true;
}
Ten kod wstawia nowy znak w pozycji kursora i przesuwa kursor w lewo nowo wstawionego znaku.
Ale nadal uważam, że ustawienie Znakowanie jest lepsze.
co GUI ramy używasz? Czy to są formularze wygranych? wpf? silverlight? –
@ monkey_boys-Mam nadzieję, że moje zmiany pozostawiły twoje znaczenie nietknięte. –
Zwróć uwagę, że 'textBox3.Text + = e.KeyChar.ToString(). ToUpper()' zawsze doda nowy znak jako ostatni w polu tekstowym, nawet jeśli karetka znajduje się pośrodku tekstu. –