2009-07-28 10 views
0

버튼이 있고 버튼 안에 이미지 컨트롤이 있습니다. 사용자가 이미지를 클릭하면 단추가 움직여서 단추가 움직이게됩니다. 실제 버튼 누름 이벤트가 발생하는지 여부는 사실 상관하지 않습니다.보고 싶은 버튼 프레스의 환상입니다.Winforms 시뮬레이션 버튼 클릭 애니메이션

참고 : 웹에서 볼 수있는 유일한 옵션은 Windows API에 직접 작성하는 것입니다. 복잡성과 업그레이드 할 수없는 수준입니다. 실제로 들어 가지 않으려 고합니다.

답변

1

필자는 picturbox를 버튼처럼 보이게 만들었습니다. 그런 다음 mouseclick 이벤트에서 몇 백 밀리 초 동안 테두리 스타일을 변경하여 단추 누르기 모양을 시뮬레이션합니다.

Private Sub simulateButtonPress(ByRef pictureBox As Infragistics.Win.UltraWinEditors.UltraPictureBox) 
    pictureBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Inset 
    Application.DoEvents() 
    System.Threading.Thread.Sleep(400) 
    pictureBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Raised 
    Application.DoEvents() 
End Sub 
+0

사실 훨씬 더 나은 해결책을 발견했습니다. MouseDown 발명품에 인서트를 넣고 MouseUp 이벤트를 올렸습니다. 그러면 마우스 버튼을 얼마나 길게 누르 느냐에 달려 있습니다. (실제 버튼이 작동하는 것처럼). 또한 첫 번째 시뮬레이션 클릭이 아직 실행 중일 때 두 번째 클릭이 발생하는 것을 방지합니다. – Jeff

+1

Infragistics 컨트롤을 사용하고 있다는 질문에는 언급하지 않았습니다. 그들의 WinButton은 당신이 찾고있는 이미지 처리를하지 않습니다. – CoderDennis

+0

그것은 이미지를 지원하지만, 필요한 크기 조정 기능을 지원하지 않습니다. (이 특정 응용 프로그램은 다양한 화면 해상도에서 부드럽게 최대화 할 수 있어야했습니다.) – Jeff

2

정상적인 이미지와 버튼을 눌렀을 때 다른 이미지를 사용하지 않는 이유는 무엇입니까?

더 복잡한 경로로 가고 싶다면 GDI +를 사용해보십시오. 이 작업을 수행하는 방법은 바로 sample tutorial입니다.

2

button control's Image property 대신 버튼 컨트롤에서 이미지 컨트롤을 사용하는 이유는 무엇입니까?

단추의 Image 속성을 사용하면 사용자가 누를 수있는 이미지가있는 단추가 제공되며 추가 작업을 수행하거나 이미 사용할 수있는 기능을 다시 구현하지 않고도 OnClick 이벤트가 발생합니다.

+0

나는 그것을 시도했지만 이미지 스트레치 기능으로는 내가 원하는 것을 처리 할 수 ​​없었다. – Jeff