2010-04-17 4 views
0

이 코드는 윈도우 폼 응용 프로그램 용이며 Silverlight 응용 프로그램으로 변환하려고 시도했지만 작동하지 않습니다. 거기에 텍스트 상자 및 그것에 연결된 KeyDown 이벤트 처리기. 사용자가 텍스트 상자에 포커스가있는 동안 화살표 키 (왼쪽 또는 오른쪽)를 누르면 쓰기가됩니다. 또는 -. 그것이 윈도우 폼 때 나는 e.KeyCode와 Keys.Right를 사용하고 위대한 작품이지만 실버 라이트 때 e.Key와 key.Right를 사용하고 화살표가 2 개의 함수를 움직이고 쓰기 때문에 제대로 동작하지 않는다. ./-. Silverlight에서 어떻게 처리 할 수 ​​있습니까? 사용 사이에 큰 다른 효과가간단한 코드를 Winform에서 Silverlight 앱으로 변환하는 데 문제가 있습니다.

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
     { 
      if (sender is TextBox) 
      { 
       TextBox textBox = (TextBox)sender; 
       if (e.Key == Key.Left || e.Key == Key.Right) 
       { 
        e.Handled = true; 
        char insert; 
        if (e.Key == Key.Left) 
        { insert = '.'; } 

        else 
        { insert = '-'; } 
        int i = textBox.SelectionStart; 
        textBox.Text = textBox.Text.Insert(i, insert.ToString()); 
        textBox.Select(i + 1, 0); 
       } 
      } 
     } 

이해가 안 :

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
     { 
      if (sender is TextBox) 
      { 
       TextBox textBox = (TextBox)sender; 
       if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right) 
       { 
        e.Handled = true; 
        char insert; 
        if (e.KeyCode == Keys.Left) 
        { insert = '.'; } 

        else 
        { insert = '-'; } 
        int i = textBox.SelectionStart; 
        textBox.Text = textBox.Text.Insert(i, insert.ToString()); 
        textBox.Select(i + 1, 0); 
       } 
      } 
     } 

(실버 라이트) :

코드 (창 양식) (내 영어 좋지 않다) 키 코드/키 및 키/키 또는 다른 이유로?

답변

0

당신은 너무 이벤트가 길 아래로 더 소모되지 않습니다

e.Handled = true; 

을 설정해야합니다.

+0

이미했지만 여전히 문제 – Sara

+0

빌어 먹을이, 나는 잠이 필요합니다/ – Femaref

1

TextBox는 이러한 키를 내부적으로 사용하고 사용자 지정 사용자 코드에 도달하기 전에 e.Handled로 표시하기 때문에 KeyDown 이벤트는 TextBox의 여러 키에 비례하지 않습니다.

또 다른 예는 텍스트 상자입니다 : 여기

문제를 더 설명 MSDN 인용이다. 화살표 키와 같은 일부 키 은 이 텍스트 상자로 간주되는 텍스트가 아니며 대신 컨트롤 UI 동작과 관련된 것으로 간주되는 이고 TextBox 은 처리 된 것으로 이러한 이벤트 사례를 표시합니다.

사용자 인 경우 사용자 지정 코드가 해당 이벤트에서 정상적으로 작동하는 것처럼 보이기 때문에 KeyUp 이벤트 만 사용합니다.

감사
- 저스틴 천사

+0

예는 정보를 주셔서 감사합니다. 또한 keyUp을 사용하면 왼쪽/오른쪽 화살표를 사용할 때 커서가 계속 움직이게되어 문제가 해결되지 않습니다. 어쨌든 화살표 키의 기능을 비활성화하는 것이 궁금합니다. – Sara

관련 문제