많은 컨트롤이 내 폼에 있고, 사용자가 그 중 하나를 클릭하면 높이가 확장된다는 가정 해 봅시다. 즉, 현재이 클릭 컨트롤이 펼쳐지면 그 아래의 다른 컨트롤이 펼쳐진 컨트롤에 의해 겹쳐 표시됩니다.컨트롤이 다시 위치 할 때 폼의 내용 이동
하지만 내가 원하는 것은 확장 된 컨트롤 아래의 각 컨트롤이 아래로 슬라이드하여 확장 된 컨트롤 아래에 있다는 것입니다.
나는 슬라이딩을 처리하는 방법을 알고 있지만 주어진 컨트롤이 움직일 때마다 한 번의 이동을 제외한 모든 컨트롤을 만드는 방법을 알지 못합니다.
아무런 도움을 주시면 감사하겠습니다. 감사합니다.
void newOrderReceived(object sender, EventArgs e)
{
foreach(Control OrderNotificationBox in OrdersPanel.Controls)
{
if(OrderNotificationBox is NotificationBox) // Checks to see if the control is a NotificationBox
{
// Add my code to slide controls down.
}
}
}
하지만 ... 어떻게 컨트롤이 다음 확장 된 컨트롤인지 여부를 알 수 있습니까 :
이 내가 무슨 생각인가?
확장 된 컨트롤 아래에있는 모든 컨트롤의 위치를 변경하려면 어떻게해야합니까?
편집 : 그냥 NotificationBox가 확장 NotificationBox 아래에 있는지 확인하기 위해 생각을했다, 아래의 수정 된 코드를 참조하십시오
void newOrderReceived(object sender, EventArgs e)
{
foreach(Control OrderNotificationBox in OrdersPanel.Controls)
{
if(OrderNotificationBox is NotificationBox) // Checks to see if the control is a NotificationBox
{
if(OrderNotificationBox.Location.Y <= ExpandedNotificationBox.Location.Y + ExpandedNotificationBox.Size.Width)
{
// Add my code to slide controls down.
}
}
}
}
을하지만이 충분하다? 현재이 방법이 효과적이기 때문에 방금 내 질문에 답변했습니다. 그러나, 이것을 할 수있는 더 좋은 방법은 없을까요? 더 우아하고 효율적인 방법?
여기 보이게하는 방법의 예입니다 :
양식의 스크린 샷과 확장 된 컨트롤의 예를 제공 할 수 있습니까? –
알렉스 –
이미지 업로드, @Alex –