1
public static object loadForm(Form formToLoad, TabControl homeTabControl)
{
    //Check if formToLoad parameter is NULL
    if (formToLoad == null) throw new ArgumentNullException("formToLoad");

    //get the parent/ownining form
    Form form1 = new Form1();

    //set formToLoad properties
    formToLoad = new Form
    {
        Owner = form1,
        FormBorderStyle = FormBorderStyle.None,
        TopLevel = false,
        Dock = DockStyle.Fill
    };

    //add formToLoad to tabControl tabPage
    homeTabControl.TabPages["tabPageHome"].Controls.Add(formToLoad);
    formToLoad.Show();

    return formToLoad;
}

ボタンクリックからコードを呼び出すと、formToLoadがtabControlページに表示されないのはなぜですか?

private void button3_Click(object sender, EventArgs e)
{
    LeaveMainForm lM = new LeaveMainForm();
    AppCode.FormLoader.loadForm(lM, homeTabControl);
}
4

1 に答える 1

2

Form次の行で、新しいインスタンスでロードしようとしている実際のフォームを上書きしています。

formToLoad  = new Form

これを試して :

//set formToLoad properties
formToLoad.Owner = form1;
formToLoad.FormBorderStyle = FormBorderStyle.None;
formToLoad.TopLevel = false; 
formToLoad.Dock = DockStyle.Fill;
于 2013-02-07T07:59:26.927 に答える