2015-01-27 3 views
0

나는 현재 캘린더 그림이있는 프로그램을 만들고 있는데, 사용자가 주어진 금요일을 클릭하면 메시지 상자가 나타납니다. 현재 시도하고있는 방법은 날짜 위에 단추를 배치하는 것입니다. 그러나 단추를 보이지 않고 동시에 작동시킬 수있는 방법을 찾을 수 없습니다.버튼을 보이지 않게 만들지 만 기능을 유지하려면 어떻게해야합니까?

이것은 모두 C# Windows Forms 응용 프로그램에 있습니다.

아이디어가 있으십니까?

+0

왜 picture-control의 click 이벤트를 사용하고 x/y 좌표를 사용하여 금요일을 확인하지 않습니까? – ChrFin

+0

나는 무엇을 하려는지 확실하지 않지만 대신 텍스트를 사용하지 않고 레이블을 사용할 수 있습니다. 그런 다음'lable-click' 이벤트를 사용 하시겠습니까? –

+0

왜 이미지 대신 실제 컨트롤을 사용합니까? 대단히 어렵지 않아야하며 훨씬 더 융통성이 있습니다. – Crisfole

답변

1

는 몇 가지 솔루션이 있습니다

  1. 대신 Button의 빈 PictureBox를 사용합니다. 이것은 당신이 원하는 말에 가장 가깝고 빠른 해결책입니다. 이 보조 PictureBox은 배경색이 Transparent으로 설정된 캘린더의 하위 항목이어야합니다. Windows.Forms의 투명성은 직계 부모에게만 적용됩니다 (이보다 더 복잡하지만 단순화 합니다).

  2. 는 달력을 표시하는 PictureBoxMouseUp 이벤트를 사용하고, 버튼을 클릭 할 때 해당 컨트롤에서 마우스의 X 및 Y 위치를 찾기 위해 이벤트 핸들러에 인수로 제공되는 MouseEventArgs를 사용합니다.

  3. 사용 괜찮은 달력/날짜 선택기 컨트롤 대신 사실 중 하나 개

물질의 이미지를 보여주는의 : 나는 # 1을 보증하지 않으며, 그 이후 당신이 될 것 같다 무엇을 거기에 넣어 묻고. 차라리 # 2, # 3 (특별히 # 3)

PS로 갈 것 : 당신이 정말로 Click을 시뮬레이션하려는 경우, 당신이 처리 할 필요가해야 모두 MouseDownMouseUp (클릭이 일반적으로 아래에 마우스 버튼을 눌러 의미 같은 컨트롤 내에서 컨트롤을 해제하는)

+0

그림 상자를 사용할 때 원래 그림 위에 사각형이 없도록 투명하게되지 않습니다. , 비록 내가 다시 색상을 투명하게 설정합니다. – Alex

+0

그림 상자를 다른 그림 상자의 자식으로 추가합니다 (배경색을 '투명'으로 설정). 그렇지 않으면 컨트롤을 "보여줍니다". WinForms의 PictureBox (WinForms는 불투명도를 계단식으로 처리하지 않음)의 경우에는 그럴 수 없습니다. 이것을 반영하도록 편집했습니다. – Jcl

+0

당신은 (주석에 연결된 투명 버튼과 같은) 아무 것도 페인트하지 않는 다른 컨트롤을 만들 수도 있지만,이 솔루션에 대해서는 조언하지 않습니다. (빈'PictureBox'를 사용하지 말고, 그냥 달성하고자하는 것에 가장 가까운 솔루션이므로 퍼팅) – Jcl