Я создал простую форму в DLL для отображения/вызова через VBScript.Показать WinForm (C#) из 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)
Простой поиск в Google о том, как вызвать C# Dll из VB Script .. Вы хотя бы подумали, что это сделать? – MethodMan
Проблема не вызывает DLL. Это работает. Это форма, которая не появляется. – Knoffel
Возможный дубликат [Создать графический интерфейс в C# и вызов в VBScript] (http://stackoverflow.com/questions/10943253/create-gui-in-c-sharp-and-call-in-vbscript) – Lankymart