2015-02-06 4 views
0

설정 정보 : I 양식을한 컨테이너에서 다른 컨테이너로 양식을 이동할 수 있습니까? 방법?

Insurance insuranceForm = new Insurance(); 

을 가지고 tabControl_insurance

에이 양식을 추가 한

언제든지 tabControl_insurance 내에서 0과 8 탭 사이에있을 수 있습니다 (제어

tabControl_insurance.SelectedTab.Controls.Add(insuranceForm); 
실행 시간).

내가하고 싶은 것 :

나는 현재 (있는 경우)를 선택 어떤 탭으로 insuranceForm을 이동하려는 것이 아니라 insuranceForm의 0 ~ 8 복사 [약간의 차이]를하는 것보다. 이것이 가능한가?

내가 아는 한 폼 컨테이너는 Controls.Add()를 통해 폼을 처음 만들 때 설정됩니다. 양식의 컨테이너()는 다시 설정할 수 없습니다.

감사합니다는

답변

0

도움이되기를 바랍니다. 그 개체를 원하는 곳에 추가하십시오. 에 의해 'this.tabControl.TabPages [x] .Controls.Add ('your_form '); 상태가 변경되지 않고 탭을 원하는 위치로 이동하면 양식이 이동합니다.

샘플 코드 :

Form2 f = new Form2(); 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     f = new Form2() 
     { 
      Top = 0, 
      Left = 0, 
      Width = 100, 
      Height = 100, 
      TopLevel = false 
     }; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 

     int x = int.Parse(this.textBox1.Text);    
     this.tabControl1.TabPages[x].Controls.Add(f); 
     f.Show(); 

     this.tabControl1.Refresh(); 
    } 

그것이 도움이되기를 바랍니다.

1

난 당신이 가능할까요 어떻게 생각, 구성 요소를 사용하여 예제를 따라하고 추가 할 수있는 방법/탭 사이를 이동하려면 제거합니다.

//Method Add Component (can be any) 
Button button = new Button() { Location = new Point(12, 12) }; 
tabControl1.SelectedTab.Controls.Add(button); 

//Method Remove Component (Can be any too) 
var controls = tabControl1.SelectedTab.Controls.Cast<Control>().Where(x => x.GetType() == typeof(Button)).ToList(); 

foreach (var item in controls) 
{ 
    tabControl1.SelectedTab.Controls.Remove(item); 
} 

이렇게하면 런타임에 탭에서 구성 요소를 추가하거나 제거 할 수 있습니다.

이 나는, 그냥 공개적으로 '보험'을 클래스를 인스턴스화하고 '거짓'에 최상위 속성을 변경 예는 수

관련 문제