2015-02-06 3 views
0

Установка:Возможно перемещение формы из одного контейнера в другой? Как? Информация

У меня есть форма

Insurance insuranceForm = new Insurance(); 

и добавили эту форму tabControl_insurance

tabControl_insurance.SelectedTab.Controls.Add(insuranceForm); 

Там может находиться в диапазоне от 0 до 8 вкладок в пределах tabControl_insurance в любой момент времени (контролируется в во время выполнения).

Что я хочу сделать:

Я хочу, чтобы переместить insuranceForm на любой вкладке выбран в данный момент (если таковые имеются), а не имея 0 до 8 копий [незначительные вариации] из insuranceForm. Это возможно?

Насколько я знаю, форма Контейнер устанавливается, когда форма сначала создается через Controls.Add(). Контейнер() формы нельзя переустановить.

Thankyou

ответ

0

Да его можно просто создать экземпляр класса «Insurance» публично и и изменить TopLevel свойство «ложь». и добавьте этот объект, когда захотите. по '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); 
} 

Этот способ позволяет добавлять или удалять компоненты из вкладки во время выполнения.

Я надеюсь, что это помогает

Смежные вопросы