2017-05-11 21 views
3

Fill으로 설정된 Dock 속성으로 SplitContainer가 있습니다 .SplitPanel1에는 그림 상자가 포함되어 있으므로 그림 상자 크기가 줄어들면 양식의 오른쪽에 공백이 생깁니다.양식 너비를 SplitContainer 일치 크기로 조정

어떻게 내용을 일치하도록 양식 크기를 다듬을 수 있습니까?

나는 발사 양식에서

Myform.Size = Myform.splitContainer1.Size; 

을 시도했습니다.

하지만 작동하지 않습니다. 내가 뭘 잘못하고있는 걸까요?

UPDATE :

스크린 샷

디자인보기

이 당신이 spiltpanel 양식을 채우는 것을 볼 수 있습니다 여기에 디자인 뷰입니다. 두 개의 패널이 있습니다. 왼쪽 패널에는 그림 상자가 있고 오른쪽 패널에는 다른 패널이 있습니다.

enter image description here

RuntimeView는

이 view.You가있는 PictureBox 크기가 reduced.I가 국경을 위해 SplitContainer가 설정 한 것을 볼 수 있습니다 런타임이며 전체 양식을 차지

enter image description here

이 내가 두 번째 양식에서

myform.endPointPictureBox1.Width = myform.splitContainer1.Panel1.Width/2; 
myform.endPointPictureBox1.Height = myform.splitContainer1.Panel1.Height; 
myform.endPointPictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; 

위의 양식을 시작 기본 양식 뒤에 코드는이 여기

코드입니다, 내가 업데이트 된로드 이벤트

splitContainer1.SplitterDistance = endPointPictureBox1.Width; 
splitContainer1.Width = endPointPictureBox1.Width + splitContainer1.Panel2.Width; 
this.Width = splitContainer1.Width; 
+0

어떻게 것을 의미하는 것이라고
이의 결과는이 다음이다 splitcontainer의 크기가 줄어들 것입니까? 즉 더 자세히 알려주십시오. AutoSize 속성을 사용 했습니까? – Fixation

+0

'AutoSize = true'를 설정하면,'AutoSizeMode = AutoSizeMode.GrowAndShrink'. –

+0

@AlexanderPetrov 앞에서 설명한대로 Form의 속성을 설정하면 양식이 축소되어 아무 것도 볼 수 없습니다. – techno

답변

2

다음을 수행하다 당신이해야 할 일 :

private void button1_Click(object sender, EventArgs e) 
{ 
    pictureBox1.Image = Image.FromFile(@"c:\Users\Admin\Desktop\tmp.png"); 
    if(splitContainer1.Orientation== Orientation.Vertical) 
    { 
     var prevWidthPanel2 = splitContainer1.Panel2.Width; 
     splitContainer1.SplitterDistance = pictureBox1.Image.Width; 
     this.Width = (this.Width - splitContainer1.Panel2.Width) + prevWidthPanel2; 
     splitContainer1.SplitterDistance = pictureBox1.Width; 
    } 
} 

나는 이것을 단추 클릭으로하고 있었지만 차이는 없다고 생각합니다. 예.

enter image description here

클릭 후 : 클릭하기 전에

: SplitPanel1에있는 PictureBox의 크기가 감소하는 경우 enter image description here

+0

체크하고 돌아올 것입니다 ... – techno

+0

이 작업을 위해'pictureBox1.Image.Width;'를'pictureBox1.Width'로 수정해야했습니다. 이것은 그림이 수직 일 때 작동합니다. 수평면이 splitpanel2가 수축 할 때 작동합니다. – techno

+0

@techno pictureBox1.Image.Width로 설정 했으므로 panel1의 너비가 항상 이미지의 너비와 같아야합니다. 질문에 아무 것도 없기 때문에 수평 대소 문자를 찾지 않았습니다. –