VBScriptを使用して表示/呼び出すためのDLLに単純なFormを作成しました。vbscriptのDLLからWinForm(C#)を表示
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を受け取ろうとしています。 しかし、私はFormを可視にするのに苦労しています。 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)
VB ScriptからC#DLLを呼び出す方法について簡単なGoogle検索を行います。 – MethodMan
問題はDLLを呼び出さないことです。それは働いています..それは現れないフォームです。 – Knoffel
[C#でGUIを作成し、VBScriptで呼び出す]の複製があります。(http://stackoverflow.com/questions/10943253/create-gui-in-c-sharp-and-call-in-vbscript) – Lankymart