在vbscript中显示DLL中的WinForm(C#)

时间:2016-12-01 16:19:40

标签: c# winforms dll vbscript

我在DLL中创建了一个简单的表单,通过VBScript显示/调用。

namespace Playground_DLL
{

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.DialogResult = System.Windows.Forms.DialogResult.OK;
    }

    public void ShowForm()
    {
        this.Show();
    }

    [ComVisible(true)]
    public void Hello()
    {
        MessageBox.Show("Hello");
        Application.Run(this);

    }
}

我点击按钮后尝试接收此表单的DialogResult。 但我正在努力使表格可见。 DLL已注册,表单可以在vbscript中创建。 但是在调用form.ShowDialog()方法之后,脚本停止(或者正在等待对话关闭),但表单不是显示的。

只有当我调用(实验性)Hello()函数时,表单才可见。 (但前提是我在调用application.run之前显示了一个消息框)。

我错过了什么或做错了什么?

这是我的vbscript片段。

(整个剧本和形式并没有真正做点什么。它只是为了学习/理解新概念)

Dim test
Set test = CreateObject("Playground_DLL.Form1")
test.topMost = True
test.Hello()
Msgbox(test.DialogResult)


Dim test
Set test = CreateObject("Playground_DLL.Form1")
test.topMost = True
Dim result
result = test.ShowDialog()
Msgbox(result)

1 个答案:

答案 0 :(得分:-1)

您初始化窗口,但从不显示它。您的排序和语法已关闭......

#