2011-12-14 2 views
0

최대 길이 3 자까지 int digits를 입력 할 2 개의 텍스트 상자를 사용하고 있습니다. 3 자리 숫자를 입력하면 첫 번째 텍스트 상자에서 두 번째 텍스트 상자로 마우스 포인터를 어떻게 전달할 수 있습니까?세 번째 숫자에 도달했을 때 텍스트 상자를 전환하는 방법은 무엇입니까?

내가 TextChange 이벤트에 그것을 할 노력하고 있어요,하지만 난 3 자리가 선택되었을 때 확인하는 방법을 잘 모르겠어요 ...

public partial class PingIPRange : Form 
{ 
    public PingIPRange() 
    { 
     InitializeComponent(); 

     txtF1.TextChanged += new EventHandler(NextField); 
     txtF2.TextChanged += new EventHandler(NextField); 
    } 

    private void NextField(object sender, EventArgs e) 
    { 
     // Well, I have no idea how to start with this... 
    } 
} 
+0

@Mythje을, 영업 이익은 윈폼을 사용하고 .. – Shai

+1

@Shai의 wops 내 나쁜 나는 것 같아요 아직 일찍>< ' – Ruben

답변

3

txtF1.Text.Length == 3하면 이동 '하기 위해 txtF2.Focus()을 사용할 수 있습니다 2 텍스트 상자에 커서 '

편집 : 당신이 마우스 포인터의 standar 인 입력에 대한 "carot"보다는 이동 하시겠습니까

private void NextField(object sender, EventArgs e) 
{ 
    if (txtF1.Text.Length == 3) // Textbox contains 3 characters, you DO NEED to validate your input. 
     txtF2.Focus(); 
} 
+0

아! 내가 이것을 시도하자. – NewHelpNeeder

+0

+1 - 동시에 입력하는 것처럼 보입니다. 나를 때려. – ChrisBD

+0

위대한 작품! 감사! – NewHelpNeeder

3

있습니까 연습.

각 문자를 입력 할 때 텍스트 상자 내에서 문자열 길이를 확인한 다음 포커스를 새 텍스트 상자로 설정하는 것이 좋습니다.

+0

+1 +1 – Shai

+0

나는'caror '문자를 바꾸려고했다. – NewHelpNeeder

0

처럼 이전 답변에서, 당신은 아마 TextBox.Focus() 원하지만, 경우에 당신이 실제로 포인터를 이동하고 싶었 :

private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     if (((TextBox)sender).Text.Length == 3) { Cursor.Position = textBox2.Location; } 
    } 
+0

초점이 달라졌습니까? – NewHelpNeeder

+1

컨트롤에 포커스가 있으면 키 입력을 캡처하고 있음을 나타냅니다. 컨트롤에 .Focus()를 설정하면 키를 누를 때 컨트롤에서이를 가져옵니다. 이 예제에서는 마우스 화살표를 원하는 위치로 이동하는 것이 좋지만, 그렇게하지 않으면 textbox1이 여전히 키 입력을 허용하는 것입니다. – StaWho

관련 문제