从dll中的类访问表单变量

时间:2013-09-06 15:04:53

标签: c# winforms dll interface

我有一个带有接口类和表单的dll。

public class Main : M.ModuleInterface
{
    void M.ModuleInterface.showForm()
    {
        Form1 frm = new Form1();
        frm.ShowDialog();
    }

    List<byte> M.ModuleInterface.ReadAll()
    {
        List<byte> buffer = new List<byte>();
        return buffer;
    }
}

问题是我有一个文本框,我想从dll的表单中读取值,并能够从ReadAll()方法访问/传递它,并尽可能从接口类设置访问控制。我怎么能做到这一点?我在Form1.cs上使用公共静态成员创建了公共静态类,但我无法使用frm.MyStaticClass访问它。谢谢!

1 个答案:

答案 0 :(得分:1)

您没有为个人答案提供足够的信息。但这是我如何从dll访问表单。假设我们有一个包含dll文件的类,如下所示:

namespace smth
{
    public partial class mytest : Form
    {
        public TextBox txt;

        public mytest()
        {
            InitializeComponent();
        }
    }
}

然后我们将表单加载到我们的项目中:

Assembly assembly = Assembly.LoadFile("C:\\mydllfile.dll");
Type type = assembly.GetType("smth.mytest");
Form form = (Form)Activator.CreateInstance(type);

现在您可以访问form.txt。 希望这会有所帮助。