저는 Visual C#을 처음 접했지만 오랫동안 델파이로 코딩했습니다. 키보드의 특정 키를 입력하지 않으면 숨겨진 간단한 패널이있는 양식을 만들었습니다 ("KeyPreview"가 양식에 대해 true로 설정되어 있고 KeyDown 이벤트를 사용하여 정확한 키 패널을 보이게하거나 보이지 않게하기 위해). 패널 바로 아래에는 webBrowser 구성 요소가 있습니다. 다음과 같이 어떤 일이 일어나고언제 C# 폼에 포커스가 있는지 확인하십시오.
은 다음과 같습니다
내 양식이 처음 시작할 때, 나는 양식을 처음에 포커스가 확실하게 "가 표시"이벤트에 대한 코드가 있습니다
private void Form1_Shown(object sender, EventArgs e)
{
if (!Focused)
{
Focus();
}
}
양식 인 경우를 이 시점에 초점을 맞추면 올바른 키 입력을 감지하여 패널을 표시하거나 사라지게하는 코드가 올바르게 작동합니다.
여기에 이상하게 보이고 무엇을해야할지 모르겠습니다.
내가 키 스트로크 (keystroke)를 내 양식에 포커스를 취득하고 시도하는 또 다른 형태에 다음 내 양식의 캡션 표시 줄을 클릭하면, 키 입력 감지 : 내가 잘못이 무엇인지에 대한 처리하고 두 부분이 있습니다 작동하지 않습니다. 그러나 다른 양식을 클릭 한 다음 한 번 더 양식을 다시 누르면 양식에 대한 키 입력 감지가 작동합니다. 나는 from이 다시 집중할 때마다 이것이 제대로 작동하도록하기 위해 무엇을 할 수 있습니까?
내 양식에서 웹 브라우저 구성 요소를 클릭하면 해당 양식의 KeyDown 코드가 더 이상 제정되지 않습니다. 양식의 캡션 표시 줄을 클릭해도 KeyDown 이벤트가 작동하지 않습니다. 내 양식 내의 구성 요소를 클릭하면 내 양식이 KeyDown 이벤트에 대해 계속 응답 할 것임을 보장하기 위해해야 할 일은 무엇입니까?
미리 조언 해 주셔서 감사합니다.
캡션 표시 줄의 코드를 표시 할 수 있습니까? –
그게 전부입니다. 캡션 표시 줄에 대한 코드가 없습니다. 폼 자체에 대한 KeyDown 이벤트에 대한 코드가 있습니다. – Andre72127