2010-12-03 20 views

Répondre

1

Je ne pas pensez-vous vous forcez à être tout en majuscule, mais fait un .ToUpper() sur la valeur qu'ils tapent dans une solution possible?

0

Vous devez utiliser l'événement TextChanged.

private void textBox_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    // Save cursor's position 
    int cursorLocation = textBox1.SelectionStart; 

    // Uppercase text 
    textBox.Text = textBox1.Text.ToUpper(); 

    // Restore cursor's position 
    textBox.SelectionStart = cursorLocation; 
} 

source

+1

Merci lukas, qui fonctionne! Ce que je recherchais était d'obtenir le même comportement que dans les applications natives, où vous déplacez le focus sur une zone de texte et le clavier apparaît avec CAPS ON, et après avoir tapé la première lettre, il revient à CAPS OFF. J'aurais dû mieux expliquer. J'ai trouvé que jouer avec InputScope et InputScopeNames fait l'affaire. Le nom en particulier que je cherchais est InputScopeNameValue.PersonalFullName. –

1

De cette façon est encore mieux:

private void codeTextChanged(object sender, TextChangedEventArgs e) 
{ 
    tPCodeText.Text = (sender as TextBox).Text.ToString().ToUpper(); 
    tPCodeText.SelectionStart++; 
}