如果你希望能夠運用你的方法對任何形式的情況下,可以在形式實例本身傳遞給你的方法(你也可以通過父面板),如下所示:
void AddFormToPanel(Form frm, Panel pnl)
{
frm.TopLevel = false;
pnl.Controls.Add(frm);
frm.Show();
}
用法:
LoginForm frm = new LoginForm();
AddFormToPanel(frm, panelcenter);
如果您的形式將永遠是LoginForm
但你希望能夠使用的實例,可以用以前的方法堅持下去,或將其轉換爲返回表單實例函數:
public Form AddFormToPanel(Panel pnl)
{
LoginForm frm = new LoginForm();
frm.TopLevel = false;
pnl.Controls.Add(frm);
frm.Show();
return frm;
}
用法:
LoginForm frm = (LoginForm)AddFormToPanel(panelcenter);
此外,應用該方法的任何形式更好的方法,就是使用泛型類,因此您可以通過類型,而不是它的一個實例。您可以使用類似以下內容:
public class NewForm<T> where T : Form, new()
{
public static void AddFormToPanel(Panel pnl)
{
T frm = new T();
frm.TopLevel = false;
pnl.Controls.Add(frm);
frm.Show();
}
}
用法:
NewForm<LoginForm>.AddFormToPanel(panelcenter);
希望幫助:)
我想我罩着你在我的回答如下所需要的。不過,我建議你編輯問題,添加更多信息來澄清問題,以避免收到投票。你可以閱讀[如何問](http://stackoverflow.com/help/how-to-ask)。或者看看[這個清單](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)這是一個非常好的參考,使您的問題更好,更容易理解。 –
哦,謝謝!問題是我對這個說法也不是很確定! :| –