저는 C# Windows Form Application Development를 처음 사용합니다.그려진 이미지에서 마우스 클릭을 감지하는 방법은 무엇입니까?
사용자가 이미지를 그릴 수있는 패널이있는 양식을 만들었습니다. 이미지가 클릭되었는지 어떻게 확인합니까?
저는 C# Windows Form Application Development를 처음 사용합니다.그려진 이미지에서 마우스 클릭을 감지하는 방법은 무엇입니까?
사용자가 이미지를 그릴 수있는 패널이있는 양식을 만들었습니다. 이미지가 클릭되었는지 어떻게 확인합니까?
양식의 이미지 패널 (또는 클릭 이벤트를 감지 할 개체)을 두 번 클릭하면 Visual Studio에서 자동으로 OnClick()
이벤트를 생성합니다. 말할 필요도없이, 저는 폼 디자이너에 대해서 이야기하고 있습니다. 코드를 테스트 할 때 실제로 나타나는 폼이 아닙니다.
또는 개체의 속성을 통해 구현할 이벤트를 설정할 수 있습니다. 그렇게하면 OnKeyDown()
또는 OnFocus()
또는 다른 종류의 이벤트도 구현할 수 있습니다.
편집 : 이미지가 전체 패널을 덮지 않는 경우 마우스 위치가 이미지 크기 내에 있는지 확인해야합니다. 이미지를 가정하는 위치 (imgOriginX, imgOriginY)
에 그려진 크기 (imgWidth, imgHeight)
가지고있다 : 디자이너 모드에서
// Fires, when user clicks on panel
private void panel_Click(object sender, EventArgs e)
{
// Cast to MouseEventArgs
MouseEventArgs mouse = (MouseEventArgs)e;
// If mouse is within image
if (mouse.X >= imgOriginX && mouse.Y >= imgOriginY && mouse.X < imgOriginX + imgWidth && mouse.Y < imgOriginY + imgHeight)
{
// do something here
}
}
는, 패널에 마우스 오른쪽 단추로 클릭하고 속성으로 이동합니다. 속성 창에서 EVENTS (Lightning 아이콘)를 선택하십시오. 클릭에 더블 클릭은,이 코드가 생성됩니다
private void panel1_Click(object sender, EventArgs e)
{
//--what to do when user clicks on panel--
MessageBox.Show("Clicked");
}
고마워요,하지만 여기 패널에 이미지를 그리는 중입니다. 마우스 클릭을 한 경우, 이미지에 있는지 여부를 감지하는 방법 (클릭이 이미지 또는 나머지 부분에서 수행 된 경우를 의미합니다. 패널) 도움이 될만한 제안 또는 힌트를 – user2074911
사용자가 그릴 수있는 이미지 유형은 무엇입니까? –
iam이 apanel에서 png 이미지를 그렸습니다. 이제 이미지에서만 마우스 클릭을 확인하고 싶습니다. – user2074911
감사하지만, 저는 여기에 마우스 클릭 한 경우 지금, 패널에 이미지를 드로잉하고, 검색하는 방법이 이미지 인 경우 또는 (클릭이 이미지 또는 패널의 나머지 부분에서 수행 된 경우) 더 많은 제안이나 힌트를 얻으실 수 있습니다. – user2074911
@ user2074911 이미지가 전체 패널을 덮지 않으십니까? 이 경우 마우스 위치가 이미지의 크기 내에 있는지 확인하는 방법은 무엇입니까? 이미지가 위치 (20,10)에 그려지고 크기가 (200,100)이라고 가정합니다. 'if (e.X> = 20 && e.Y> = 10 && e.X <20 + 200 && e.Y <10 + 100) '과 같이 표시됩니다. – Nolonar