2011-08-21 4 views
2

PictureBox를 사용하여 기본 대화 상자 양식 안에 일부 그림을 배치 및 재배치 (이동)하고 있습니다. 삭제 키를 누를 때 사진을 삭제하고 싶습니다. 나열된 컨트롤에 대한 키보드 처리 이벤트를 찾을 수 없습니다.Label 및 PictureBox의 KeyDown 처리

음, Form에 KeyDown을 사용하고 PictureBox에 포커스가 있는지 확인하지만보기가 어렵습니다.

는 이벤트 http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.keydown.aspx

있다처럼 볼하지만 사실 ...하지

어떤 생각을 수행 할 수 있습니까?

답변

3

두 컨트롤 중 어느 것도 포커스를 얻을 수 없다는 것은 그리 미묘한 암시입니다. 키보드 이벤트는 집중 될 수있는 컨트롤에 대해서만 생성됩니다. TextBox가 궁극적 인 예이지만 많은 다른 것들이 있습니다. 그들은 점선으로 된 초점 사각형, 색상 또는 캐럿을 사용하여 사용자에게 초점을 표시하는 방법을 가지고 있습니다.

하지만 PictureBox 나 Label이 아니더라도 원하는 모든 것을 클릭 할 수는 있지만 포커스를받지는 못하며 표시하지 않습니다. 그들은 각각 이미지 나 텍스트를 보여주는 작은 병이다. 사용자는 그 (것)들이 재미있는 무엇이든을 예상하지 않는다.

어떤 종류의 포커스 동작을 제공할지 알 수 없지만 초점을 맞추기 어려운 컨트롤을 포커스가있는 컨트롤로 바꾸는 예제는 this answer입니다.

+0

예, 답변은 내가 필요한 것입니다. 감사. –

1

그림 상자에 포커스가 표시되지 않으므로 양식을보고 사용자가 삭제를 누를 때 포커스가있을 가능성이있는 위치를 볼 수 있습니다.

삭제 키가 작동하는 양식의 컨트롤 (버튼, 체크 박스 등, 텍스트 상자가 아닐 수도 있음)을 결정하고 해당 컨트롤에서 keydown 이벤트를 사용하여 적절한 조치를 취하십시오.

양식의 keydown 이벤트가 예상 한대로 작동하지 않을 수 있으므로 양식의 개별 컨트롤에서 keydown 이벤트를 사용하면 더 좋을 수 있습니다.