0

我想创建一个可以将表单名称传递给的方法,该方法将实例化表单并设置它的位置。

所以我会这样称呼它:

OpenNewForm("登录");

该方法看起来像:

Public void OpenNewForm(string sForm)
{
[sForm] frm = new [sForm];
frm.Parent = parent;
frm.StartPosition = FormStartPosition.CenterParent;
frm.ShowDialog();

}

但我不知道如何将变量 sForm 作为实例化代码的一部分。

4

2 回答 2

1
public static void OpenNewForm(string formName)
{
    string myNamespace = App.Current.GetType().ToString().Split('.')[0]; // TODO: Improve this method of get the namespace.

    var w = (Window)Activator.CreateInstance(null, myNamespace + "." + formName).Unwrap();
    w.Show();
}
于 2013-09-18T01:51:07.507 回答
1

简单方法(改编自

public static void OpenNewForm(string formName)
{
    Form frm;
    switch (formName) {
        case "Login":
            frm = new Login();
        case "Citations":
            frm = new Citations();
        case "References":
            frm = new References();
        default:
            throw new ArgumentException("Invalid parameter value.");
    }

    frm.Parent = parent;
    frm.StartPosition = FormStartPosition.CenterParent;
    frm.ShowDialog();
}
于 2013-09-18T01:28:49.513 回答