C#Windowsアプリケーションでは、ログインフォーム、MdiParentフォーム、および複数のMdichildフォームがあります。MDIParentからMDIChildフォームへのパラメータの受け渡し
public void ShoworActivate<T>(string loggedUser)where T: Form
{
var k = MdiChildren.Where(c==>c.GetType() == typeof(T)).FirstorDefault();
if(k= null)
{
k = (Form)Activator.CreateInstance(typeof(T));
......More code
}
}
私が合格する必要があります:首尾MDI親フォームでユーザーがログインが起動され、その後、ユーザーがMDI Parent.InにMDI親フォームのボタンをクリックすることにより、子フォームを起動することができたとき、私は方法を持っています子フォームのパラメータ文字列loggedUserを子フォームのコンストラクタに置くと、エラーが発生します。 {"このオブジェクトにはパラメータのないコンストラクタは定義されていません"}
どうすればこの問題を解決できますか? Child Form = new ChildForm(string loggedUser)を使用したくありません。これは機能します。
どこでどのようにエラーが発生しますか?何が起きているのかを理解するために、より多くの文脈を与えてください。コンストラクタの注入はこれのためのより良い選択肢と思われますが、それ以外の場合は、2番目のオプションとしてパブリックプロパティまたはメソッドが適しています。 – Alejandro
私はエラーが発生しました.... k =(Form)Activator.CreateInstance(typeof(T)); – user3511641