none
창크기 변경에 따른 확대 축소 RRS feed

  • 질문

  • 베이직으로 프로그램을 작성하고 실행시켰을때, 최대화 버튼으를 누르거나 창의 크기를 임의로 변경하였을때 창의 내용이 창크기에 따른 비율로 확대 축소 되게 하려면 어떠한 구문을 사용해야 하나요??
    2012년 4월 2일 월요일 오전 1:26

답변

  • 안녕하십니까?
    질문하신 "
    컨트롤 크기를 폼의 크기에 따라 자동조절하는 방법" 에 대해 답변드리도록 하겠습니다

    컨트롤 크기를 폼의 크기에 따라 자동 조절하시려면, 우선 Anchor 속성에 대해 아셔야 하는데요,

    Anchor 속성이란,
    컨트롤이 바인딩되는 컨테이너의 가장자리를 가져오거나 설정하고 해당 부모를 기초로 컨트롤 크기를 조정하는 방법을 결정하는 속성을 말합니다.

    즉,
    부모 컨트롤의 크기가 조정될 때 자식 컨트롤의 크기가 자동으로 조정되는 방법을 정의하려면 Anchor 속성을 사용합니다. 컨트롤을 부모 컨트롤에 고정하면 고정된 가장자리는 부모 컨트롤의 크기가 변경되어도 부모 컨트롤의 가장자리를 기준으로 동일한 위치를 유지합니다.

    컨트롤을 해당 컨테이너의 여러 가장자리에 고정할 수 있습니다. 예를 들어, Anchor 속성 값이 Top 및 Bottom로 설정된 Button 이 포함된 Form 이 있는 경우, Form의 Height 가 늘어나면 Form 의 위쪽 및 아래쪽 가장자리와의 고정 거리를 유지하기 위해 Button이 늘어납니다.

    따라서, 아래 사진 (좌측) 은 Anchor 속성 값에 대한 설명인데요,

    컨트롤 윗변에서부터 폼의 윗변 까지의 거리를 고정시켜주는 Top 값,
    컨트롤 좌변에서부터 폼의 좌변 까지의 거리를 고정시켜주는 Left 값,
    컨트롤 아랫변에서부터 폼의 아랫변 까지의 거리를 고정시켜주는 Bottom 값과
    컨트롤 우변에서부터 폼의 우변 까지의 거리를 고정시켜주는 Right 값이 있는데,
    스크린 샷에서 Right 값은 빠졌네요;; (죄송합니다.)

    이제 아래의 설정 창을 보시면, Left 값과 Top 값이 설정되어 있는데요,
    이는 컨트롤 윗변에서부터 폼의 윗변 까지의 거리와 컨트롤 좌변에서부터 폼의 좌변 까지의 거리를 함께 고정시켜주게 끔
    설정해 준 것입니다.


    이렇게 설정해 주시고 디버깅 하시어 폼의 크기를 조정 해 보시면 어떻게 하든 상관없이 Button 의 위치는 처음과 같이 유지되게 됩니다. (하단 그림 참조)


    결론적으로, 이를 이용하면 폼의 크기를 작게 또는 크게 했을때나 해상도가 다른 환경에서 실행했을 시 그 안의 여러 컨트롤들이 전부 폼의 크기에 맞게 크기나 위치가 자동으로 재조절되게 됩니다. 주의 하실 점은, 중앙에 있는 컨트롤의 경우에는 Top, Left, Right, Bottom 속성을 모두 설정해주어야 하며, 우측 & 상단 테두리와 가까이 있는 컨트롤들은 Right, Top 속성을

    함께, 좌측 & 상단 테두리와 가까이 있는 컨트롤들은 Left, Top 속성을 함께, 폼의 좌측, 하단 테두리와 가까이 있는 컨트롤들은 Bottom, Left 속성을 함께 설정하여 주시면 됩니다.

    마지막으로, 이를 소스 코드로 사용해 보실 수도 있는데 제가 특별히 가져온 예제는 Button을 폼에 추가하고 해당 공용 속성 중 일부를 설정하는 방법입니다. 예제에서는 폼의 오른쪽 아래 모퉁이에 단추를 고정시켜 폼의 크기가 조정될 경우 상대적인 위치를 유지할 수 있도록 합니다. 다음에는 BackgroundImage를 설정하고 Image와 같은 크기로 단추의 크기를 조정합니다. 그런 다음 TabStop을 true로 설정하고 TabIndex 속성을 설정합니다. 마지막으로 단추의 Click 이벤트를 처리하는 이벤트 처리기를 추가합니다. 이 예제를 실행하려면 imageList1이라는 ImageList가 있어야 할 경우의 예제입니다.

    // 폼에 버튼을 추가하고, 일반적인 속성을 추가합니다.
    private void AddMyButton()
    {
    // 버튼을 생성한 후 폼에 버튼을 나타냅니다.

    Button button1 = new Button();

    // Anchor (Bottom & Right) 속성을 Button 컨트롤에 적용시킵니다.
    button1.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);

    // 배경 이미지를 설정합니다.
    button1.BackgroundImage = imageList1.Images[0];

    // 배경이미지의 레이아웃을 설정 해 줍니다.
    button1.BackgroundImageLayout = ImageLayout.Center;

    // 버튼 컨트롤의 크기를 이미지 크기와 같게 유지시켜줍니다.
    button1.Size = button1.BackgroundImage.Size;

    // 버튼 컨트롤의 TabIndex 와 TabStop 속성을 설정합니다.
    button1.TabIndex = 1;
    button1.TabStop = true;

    // 델리게이트 (Delegate) 를 추가하여 Click 이벤트를 발생시킵니다.
    button1.Click += new System.EventHandler(this.button1_Click);

    // 버튼 컨트롤을 폼에 추가하여 소스 코드를 마무리합니다.
    this.Controls.Add(button1);
    }

    감사합니다.
    오늘도 좋은 하루 되시기 바라며, 즐겁게 프로그래밍 하시기
    바랍니다.


    더 많은 정보와 팁들은 제 블로그
    http://www.happybono.net/ 으로 오시면 얻어가실 수 있사오니 이용에 참고하여 주시기 바랍니다.

    답변이 도움 되셨기 바라며, 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    • 편집됨 devlife 2012년 4월 2일 월요일 오후 12:51
    • 답변으로 제안됨 아쿠아마린 2012년 4월 2일 월요일 오후 12:52
    • 답변으로 표시됨 Jina LeeModerator 2012년 4월 23일 월요일 오전 1:35
    2012년 4월 2일 월요일 오후 12:43
  • 안녕하십니까? Ryu KyungHwan 님,
    Microsoft MSDN의Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 ”CSS 파일이 CSS Source Editor 를 통해서 열리지 않습니다.”에 대해 답변드리겠습니다.

    제 생각에는 SizeToContent 속성을 설정하여 창의 크기가 해당 콘텐츠에 맞게 조정되도록 만드는 방식을 이용하시면 될 것 같습니다.

       ' Manually alter window height and width
       Me.SizeToContent = SizeToContent.Manual

       ' Automatically resize width relative to content
       Me.SizeToContent = SizeToContent.Width

       ' Automatically resize height relative to content
       Me.SizeToContent = SizeToContent.Height

       ' Automatically resize height and width relative to content
       Me.SizeToContent = SizeToContent.WidthAndHeight

    [참고자료]
    방법: 내용에 맞게 자동으로 창의 크기 조정

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.
     

    • 답변으로 표시됨 Ryu KyungHwan 2012년 4월 9일 월요일 오전 8:10
    2012년 4월 2일 월요일 오전 4:53
    중재자

모든 응답

  • 안녕하십니까? Ryu KyungHwan 님,
    Microsoft MSDN의Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 ”CSS 파일이 CSS Source Editor 를 통해서 열리지 않습니다.”에 대해 답변드리겠습니다.

    제 생각에는 SizeToContent 속성을 설정하여 창의 크기가 해당 콘텐츠에 맞게 조정되도록 만드는 방식을 이용하시면 될 것 같습니다.

       ' Manually alter window height and width
       Me.SizeToContent = SizeToContent.Manual

       ' Automatically resize width relative to content
       Me.SizeToContent = SizeToContent.Width

       ' Automatically resize height relative to content
       Me.SizeToContent = SizeToContent.Height

       ' Automatically resize height and width relative to content
       Me.SizeToContent = SizeToContent.WidthAndHeight

    [참고자료]
    방법: 내용에 맞게 자동으로 창의 크기 조정

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.
     

    • 답변으로 표시됨 Ryu KyungHwan 2012년 4월 9일 월요일 오전 8:10
    2012년 4월 2일 월요일 오전 4:53
    중재자
  • 안녕하십니까?
    질문하신 "
    컨트롤 크기를 폼의 크기에 따라 자동조절하는 방법" 에 대해 답변드리도록 하겠습니다

    컨트롤 크기를 폼의 크기에 따라 자동 조절하시려면, 우선 Anchor 속성에 대해 아셔야 하는데요,

    Anchor 속성이란,
    컨트롤이 바인딩되는 컨테이너의 가장자리를 가져오거나 설정하고 해당 부모를 기초로 컨트롤 크기를 조정하는 방법을 결정하는 속성을 말합니다.

    즉,
    부모 컨트롤의 크기가 조정될 때 자식 컨트롤의 크기가 자동으로 조정되는 방법을 정의하려면 Anchor 속성을 사용합니다. 컨트롤을 부모 컨트롤에 고정하면 고정된 가장자리는 부모 컨트롤의 크기가 변경되어도 부모 컨트롤의 가장자리를 기준으로 동일한 위치를 유지합니다.

    컨트롤을 해당 컨테이너의 여러 가장자리에 고정할 수 있습니다. 예를 들어, Anchor 속성 값이 Top 및 Bottom로 설정된 Button 이 포함된 Form 이 있는 경우, Form의 Height 가 늘어나면 Form 의 위쪽 및 아래쪽 가장자리와의 고정 거리를 유지하기 위해 Button이 늘어납니다.

    따라서, 아래 사진 (좌측) 은 Anchor 속성 값에 대한 설명인데요,

    컨트롤 윗변에서부터 폼의 윗변 까지의 거리를 고정시켜주는 Top 값,
    컨트롤 좌변에서부터 폼의 좌변 까지의 거리를 고정시켜주는 Left 값,
    컨트롤 아랫변에서부터 폼의 아랫변 까지의 거리를 고정시켜주는 Bottom 값과
    컨트롤 우변에서부터 폼의 우변 까지의 거리를 고정시켜주는 Right 값이 있는데,
    스크린 샷에서 Right 값은 빠졌네요;; (죄송합니다.)

    이제 아래의 설정 창을 보시면, Left 값과 Top 값이 설정되어 있는데요,
    이는 컨트롤 윗변에서부터 폼의 윗변 까지의 거리와 컨트롤 좌변에서부터 폼의 좌변 까지의 거리를 함께 고정시켜주게 끔
    설정해 준 것입니다.


    이렇게 설정해 주시고 디버깅 하시어 폼의 크기를 조정 해 보시면 어떻게 하든 상관없이 Button 의 위치는 처음과 같이 유지되게 됩니다. (하단 그림 참조)


    결론적으로, 이를 이용하면 폼의 크기를 작게 또는 크게 했을때나 해상도가 다른 환경에서 실행했을 시 그 안의 여러 컨트롤들이 전부 폼의 크기에 맞게 크기나 위치가 자동으로 재조절되게 됩니다. 주의 하실 점은, 중앙에 있는 컨트롤의 경우에는 Top, Left, Right, Bottom 속성을 모두 설정해주어야 하며, 우측 & 상단 테두리와 가까이 있는 컨트롤들은 Right, Top 속성을

    함께, 좌측 & 상단 테두리와 가까이 있는 컨트롤들은 Left, Top 속성을 함께, 폼의 좌측, 하단 테두리와 가까이 있는 컨트롤들은 Bottom, Left 속성을 함께 설정하여 주시면 됩니다.

    마지막으로, 이를 소스 코드로 사용해 보실 수도 있는데 제가 특별히 가져온 예제는 Button을 폼에 추가하고 해당 공용 속성 중 일부를 설정하는 방법입니다. 예제에서는 폼의 오른쪽 아래 모퉁이에 단추를 고정시켜 폼의 크기가 조정될 경우 상대적인 위치를 유지할 수 있도록 합니다. 다음에는 BackgroundImage를 설정하고 Image와 같은 크기로 단추의 크기를 조정합니다. 그런 다음 TabStop을 true로 설정하고 TabIndex 속성을 설정합니다. 마지막으로 단추의 Click 이벤트를 처리하는 이벤트 처리기를 추가합니다. 이 예제를 실행하려면 imageList1이라는 ImageList가 있어야 할 경우의 예제입니다.

    // 폼에 버튼을 추가하고, 일반적인 속성을 추가합니다.
    private void AddMyButton()
    {
    // 버튼을 생성한 후 폼에 버튼을 나타냅니다.

    Button button1 = new Button();

    // Anchor (Bottom & Right) 속성을 Button 컨트롤에 적용시킵니다.
    button1.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);

    // 배경 이미지를 설정합니다.
    button1.BackgroundImage = imageList1.Images[0];

    // 배경이미지의 레이아웃을 설정 해 줍니다.
    button1.BackgroundImageLayout = ImageLayout.Center;

    // 버튼 컨트롤의 크기를 이미지 크기와 같게 유지시켜줍니다.
    button1.Size = button1.BackgroundImage.Size;

    // 버튼 컨트롤의 TabIndex 와 TabStop 속성을 설정합니다.
    button1.TabIndex = 1;
    button1.TabStop = true;

    // 델리게이트 (Delegate) 를 추가하여 Click 이벤트를 발생시킵니다.
    button1.Click += new System.EventHandler(this.button1_Click);

    // 버튼 컨트롤을 폼에 추가하여 소스 코드를 마무리합니다.
    this.Controls.Add(button1);
    }

    감사합니다.
    오늘도 좋은 하루 되시기 바라며, 즐겁게 프로그래밍 하시기
    바랍니다.


    더 많은 정보와 팁들은 제 블로그
    http://www.happybono.net/ 으로 오시면 얻어가실 수 있사오니 이용에 참고하여 주시기 바랍니다.

    답변이 도움 되셨기 바라며, 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    • 편집됨 devlife 2012년 4월 2일 월요일 오후 12:51
    • 답변으로 제안됨 아쿠아마린 2012년 4월 2일 월요일 오후 12:52
    • 답변으로 표시됨 Jina LeeModerator 2012년 4월 23일 월요일 오전 1:35
    2012년 4월 2일 월요일 오후 12:43