2014-06-24 2 views
0

현재 TextBox 내에서 텍스트를 강조 표시하기 위해 this 메서드를 사용하고 있지만 때때로 작동합니다.TextBox에서 텍스트를 강조 표시하는 방법이 일치하지 않습니다.

이 코드는 입력 된 텍스트에 공백이 있는지 확인해야합니다. 텍스트에 공백이있는 경우 사용자에게 경고해야하고 텍스트 상자 안의 텍스트가 강조되어야한다 :

if (textBox.Text.Contains(" ")) 
{ 
    MessageBox.Show("Sorry, the value entered must not contain any spaces.", "Please enter a valid value", MessageBoxButton.OK, MessageBoxImage.Error); 

    //Highlights incorrect text 
    textBox.SelectionStart = 0; 
    textBox.SelectionLength = textBox.Text.Length; 
} 

왜 나를 위해 모든 시간을 작업이 방법은 아닙니다 내가 무엇을 할 수 그것을 해결하기 위해?

+0

간단한 키 입력을 사용하는 것이주십시오 ... 훨씬 더 나은 만든다 사용자 경험. –

+0

@ 에릭 (Eric) 나는 집중하는 것이 문제라고 생각한다. –

+2

Valadate 및 DataError가 훨씬 우수한 사용자 환경입니다. 메시지 상자는 매우 눈에 띄지 않습니다. – Paparazzi

답변

0

현재 순간에 초점이없는 textBox의 길이를 선택하면 문제가 될 수 있습니다.

포커스 검사를 추가 할 수 있습니까? 대신 당신이 textBox.SelectAll()를 사용하여 현재 솔루션의

if (textBox.Text.Contains(" ")) 
{ 
    MessageBox.Show("Sorry, the value entered must not contain any spaces.", "Please enter a valid value", MessageBoxButton.OK, MessageBoxImage.Error); 

    if(!textBox.Focused) 
    { 
     textBox.Focus(); 
    } 

    //Highlights incorrect text 
    textBox.SelectionStart = 0; 
    textBox.SelectionLength = textBox.Text.Length; 
} 

: 사용자에두고 공백을 취소하려면 자바 스크립트 이벤트

if (textBox.Text.Contains(" ")) 
{ 
    textBox.SelectAll(); 
    MessageBox.Show("Sorry, the value entered must not contain any spaces.", "Please enter a valid value", MessageBoxButton.OK, MessageBoxImage.Error); 

} 
+0

C# 코드는 if (! textBox.Focus())입니다. 나는 그것을 시도, 그것은 한 번 일했고 희망적 이었지만 다른 시도는 실패했습니다 ... –

+0

어떤 경우 실패했는지 설명 할 수 있습니까? –

+0

실제로 요소에 이미 포커스가있는 경우 Focus 메서드를 호출하면 안됩니다. 그래서 textbox.Focused가 센스를 만드는지 확인하십시오. –

관련 문제