사용자가 응용 프로그램에 사용자 지정 단축키를 지정할 수있는 설정 양식을 만들고 있습니다. 이 텍스트 상자는, 그리고 (다른 라벨을 중심으로) 마우스로 클릭하여, 그것은 초점을 맞추고 하나의 키를 누를 때까지 대기 한 후 집속 : TextBox를 다시 클릭하여 초점 맞추기
private void txtKey_KeyDown(object sender, KeyEventArgs e)
{
e.SuppressKeyPress = true;
}
private void txtKey_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
TextBox textBox = (TextBox)sender;
textBox.Text = e.KeyCode.ToString();
label1.Focus();
}
키 assinging 과정을 집중 텍스트 상자를 디 포커스 (와 취소 할 수있는 방법이 있나요), 마우스로 다시 클릭하거나 그 주위의 GroupBox를 클릭하여? TextBox가 클릭되었을 때 이미 포커스가 맞춰 졌는지 확인하는 방법을 알아낼 수 없습니다 (클릭했을 때 포커스가 맞는지 테스트하기 전에 포커스가 집중됨). 물론 TextBox 옆에 "Cancel"버튼을 추가 할 수는 있지만 원하는 것은 아닙니다.
GroupBox의 Click 이벤트가 없으므로 GroupBox를 클릭하여 TextBox의 초점을 해제 할 수 없습니다. 아니면 내가 어떻게 할 수 있니?
'GroupBox' 내에서'Panel' 컨트롤을 사용하지 않는 이유는'Panel'에'MouseClick' 이벤트가 있기 때문입니다. – sallushan
이런 종류의 작품. 더 나은 해결책을 찾을 수 없다면이 방법을 사용하겠습니다. 이 문제는 그 패널 내부의 모든 레이블에 Click 이벤트를 설정하고 패널을 모든 GroupBox에 추가해야한다는 것입니다. 그리고 GroupBox 테두리는 여전히 작동하지 않으므로 조금 더러운 접근 방식이지만 어쨌든 감사합니다! – darx
대화 상자에 [확인] 및 [취소] 단추 이외의 다른 포커스를 지정할 수있는 컨트롤이없는 경우 "취소 중"의 의미는 무엇입니까? 사용자는 단순히 키보드를 사용할 다른 좋은 이유가 없습니다. –