Могу ли я загрузить новую форму в панель? - PullRequest
4 голосов
/ 03 ноября 2011

Я работаю над приложением Windows. У меня есть меню в одной форме, и я хочу спросить, могу ли я иметь панель, которая будет загружать новую форму при конкретном щелчке меню.

Ex:

File Data 
  ABC  Hello
  XYZ  Bye

Это моя строка меню. По щелчку ABC я не хочу переходить в другую форму, могу ли я что-то сделать (все, что я хочу) в той же форме, используя панель.

Спасибо

Ответы [ 5 ]

4 голосов
/ 01 июня 2014

Я думаю, что у меня был тот же вопрос.

Но я нашел ответ на него

Пример CodeProject

Сначала нужно настроитьФорма:

myForm.FormBorderStyle = FormBorderStyle.None;

А затем манипулирует действием:

Form1 myForm = new Form1();
myForm.TopLevel = false;
myForm.AutoScroll = true;
frmMain.Panel2.Controls.Add(myForm);
myForm.Show();

Надеюсь вам помочь.Объятия: D

1 голос
/ 03 ноября 2011

Вы можете использовать MDI Форма.Попробуйте что-то вроде этого

 //Create a new instance of the MDI child template form
    Form2 child= new Form2(); 

    //Set parent form for the child window 
    child.MdiParent=this;

    //Display the child window
    child.Show()

, вы также можете обратиться к этому сайту .

0 голосов
/ 22 октября 2013
  private void pbxpurchase_Click(object sender, EventArgs e)
    {
        contentpnl.Controls.Clear();//contentpnl is the panelname
        purchasebook purchasebk = new purchasebook();//purchasebook is a formname
        purchasebk.TopLevel = false;
        purchasebk.AutoScroll = true;
        contentpnl.Controls.Add(purchasebk);
        purchasebk.Dock = DockStyle.Fill;
        purchasebk.Show();

    }

Попробуйте 100% проверено

0 голосов
/ 03 ноября 2011

Добавьте две формы на вашу форму, только одна будет видна одновременно. Затем добавьте два события в ваши меню:

private void ABCToolStripMenuItem_Click(object sender, EventArgs e) {
    panelABC.Visible = true;
    panelXYZ.Visible = false;
}

private void XYZToolStripMenuItem_Click(object sender, EventArgs e) {
    panelABC.Visible = false;
    panelXYZ.Visible = true;
}
0 голосов
/ 03 ноября 2011

Если вы поместите все содержимое целевой формы в UserControl, вы можете добавить панель в основную форму и разместить UserControl на этой панели.

У вас все еще есть возможность отобразить отдельную форму, создав пустую форму и поместив в нее тот же UserControl.

Как уже указывалось в Int3,, вместо этого вы можете использовать формы MDI. Однако, если вы хотите использовать закрепляемые панели, лучше всего воспользоваться UserControl.

...