2013-03-31 3 views
-1

그래서 나는 C# 프로젝트 (윈폼)에서 작동, 그래서 난 내 프로젝트에 텍스트 상자를 많이하고 난 내가 키 까지 특정 텍스트 상자가 textbox1 증가가 자신의 가치, 나는 이미를 사용하는 가정 해 봅시다 누르면 원하는 이벤트 OnKeyUp하지만 문제는 내가 텍스트 상자를 많이 가지고 있으므로이 작업을 시작하려면 TextBox1을 클릭해야합니다. 누군가가 어떤 아이디어를 가지고 있으면 매우 감사하겠습니다. 당신은 당신이 True로 Form.KeyPreview 속성을 설정할 수 있습니다 양식의 모든 컨트롤의 KeyUp 이벤트를 처리하려면키 입력으로 textBox에 액세스하는 방법?

//Action speed up 
private void TxBoxKeyUp_KeyUp(object sender, KeyEventArgs e) 
{ 
    TxBoxKeyUp.Text = (speed+=5).ToString(); 
    LbSpeed.Text = TxBoxKeyUp.Text; 
} 
+0

더 명확하게하기 위해 질문을 수정하십시오. '속도'란 무엇입니까? 키를 눌렀다 놓을 때마다 * 늘려야하는 이유는 무엇입니까? 왜 'TextBox'에 값을 저장하고 레이블을 직접 설정하는 대신 레이블에 값을 저장하고 있습니까? 이 질문은 혼란 스러울뿐입니다 ... –

답변

1

:

내 코드입니다. 그런 다음 양식에 대한 KeyUp 이벤트 처리기를 추가하고 의도가 시간에 초점을 맞춘 컨트롤을 무엇이든 제어마다의 keyup을 잡을 경우이 이벤트에 텍스트 상자의 내용이

private void Form1_KeyUp(object sender, KeyEventArgs e) 
{ 
    TxBoxKeyUp.Text = (speed+=5).ToString(); 
    LbSpeed.Text = TxBoxKeyUp.Text; 
} 

이 잘 작동 업데이트 이벤트가 발생 . 컨트롤이 TextBox 인 경우에만 키 업을 가져와야하는 경우 솔루션이 더 복잡합니다. 현재 포커스가있는 컨트롤을 가져온 다음 텍스트 상자인지 확인하려면 method like the one explained in this question이 필요합니다.

0

텍스트 상자를 배열로 정의한 다음 대리자를 사용할 수 있습니다.

는 TxBoxKeyUp_KeyUp 하나의 keyup 이벤트 가 있다고 가정 할 수 있습니다 및

foreach (TextBox txt in txtarr) 
    txt.KeyUp += new KeyEventHandler(TxBoxKeyUp_KeyUp); 

txtarr 텍스트 상자 의 배열은 그래서 당신은 하나의 기능을 가진 모든 텍스트 상자의 keyup 이벤트를 처리 할 수 ​​있습니다.

관련 문제