Windows Forms-Enter 키를 누르면 제출 버튼이 활성화됩니까?


95

양식의 아무 곳에서나 Enter 키 누르기를 캡처하고 강제로 제출 단추 이벤트를 발생시킬 수 있습니까?


8
그렇다면 Matt Hamilton의 대답에서 AcceptButton 속성을 누르지 않는 이유는 무엇입니까?
Mukus

'this.Form.DefaultButton = MyButton.UniqueID;'사용
Bino Kochumol Varghese

답변:


196

FormAcceptButton속성을의 Buttons 중 하나로 설정 Form하면 기본적으로 해당 동작을 얻을 수 있습니다.

그렇지 않으면 KeyPreview속성을 trueon으로 설정 Form하고 KeyDown이벤트를 처리합니다 . Enter키를 확인 하고 필요한 조치를 취할 수 있습니다 .


8
그리고 탈출의 키를 처리하기위한 CancelButton을 잊지 않는다
WholeLifeLearner

1
대박! 더 나은 내 Framewrok을 알 필요)

24
private void textBox_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)
        button.PerformClick();
}

22

폼의 속성에서 "AcceptButton"으로 단추를 지정할 수 있으며, 그러면 폼에서 "Enter"키 누름을 포착하여 해당 컨트롤로 라우팅합니다.

방법 : 디자이너를 사용하여 Windows Forms 단추를 수락 단추로 지정을 참조 하고 설명하는 몇 가지 예외 (여러 줄 텍스트 상자 등)에 유의하십시오.


링크를 주셔서 감사합니다, 저를 붙잡는 예외.
ubiquibacon

이 링크는 죽은 것으로 보입니다.
JAD

10

이전에 언급 한 바와 같이, 양식의 설정 AcceptButton의 의 버튼 중 하나에 속성을하고 SET DialogResult를의 해당 버튼의 속성 DialogResult.OK을 대화 수락 또는 기각 된 경우 알고 발신자의 순서.


6

KeyUp이벤트를 구독 할 수 있습니다 TextBox.

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
       DoSomething();
}

1
내가 찾던 바로 그것. 버튼 대화 상자 결과가 확인으로 설정되어 있고 ENTER가 작동하는 데 불필요한 코드를 작성하고 싶지 않았습니다!
Kristjan1215



0

양식의 KeyPreview 속성을 True로 설정 한 다음 양식 수준에서 KeyPress 이벤트를 사용하여 Enter 키를 감지합니다. 감지시 "제출"버튼에 대한 코드를 호출하십시오.


0
  if (e.KeyCode.ToString() == "Return")
  { 
      //do something
  }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.