2014-01-21 3 views
-2

Может кто-нибудь объяснить мне, почему первый блок кода не работает во время второго. В первом примере строка не capizalized, когда управление теряет фокус.String.ToUpper не использует строку при переходе в элемент управления DevExpress TextEdit

Не работает (не капитализируются):

private void nameTextEdit_Leave(object sender, EventArgs e) 
{ 
    if(Properties.Settings.Default.capitalizeCustomer != false) 
    { 
     string userEnteredString = nameTextEdit.EditValue.ToString(); 
     string capitalizedString = userEnteredString.ToUpper(); 
     nameTextEdit.EditValue = capitalizedString; 
    } 
} 

работать нормально (когда контроль потерял фокус текст капитализируются):

private void nameTextEdit_Leave(object sender, EventArgs e) 
{ 
    if(Properties.Settings.Default.capitalizeCustomer != false) 
    { 
     string userEnteredString = nameTextEdit.EditValue.ToString(); 
     nameTextEdit.EditValue = userEnteredString.ToUpper(); 
    } 
} 
+5

Что такое "не работает"? – CodeCaster

+3

Кто знает. Присоедините отладчик. Наведите указатель мыши на переменные. –

+2

Они уверены, что они должны вести себя точно так же. Вы уверены, что это не имеет никакого отношения к настройке 'capitalizeCustomer'? – JLRishe

ответ

0

Это странно, оба примера должны иметь тот же эффект ,

Моя догадка, вы случайно сделали

nameTextEdit.EditValue = userEnteredString; 

вместо:

nameTextEdit.EditValue = capitalizedString; 
+0

Нет, я не так, но пока что нашел это. http://documentation.devexpress.com/#WindowsForms/CustomDocument2150. К большому коду для простого ToUpper – Carlo

+0

Итак, вы получили его на работу? – Rik

0

Почему вы не просто установить CharacterCasing свойство Upper и предотвратить нижний регистр с самого начала?

Смежные вопросы