あなたが任意のフォームのインスタンスで、あなたの方法を適用することができるようにしたい場合は、あなたの方法に、フォームのインスタンス自体を渡すことができます。
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)をご覧ください。これは、あなたの質問をより理解しやすくするための非常に参考になります。 –
ありがとう!問題は私もその声明のどちらも確信していなかったことです! :| –