叫我已經寫在C#中的API將在VB6 & VBScript中使用,並且承擔我的API的細節,當不顯示C#WinForm的是如下:
1.還有就是API的形式,但它不會暴露給COM
2.有一個名爲ShowForm()的方法,其代碼爲「form1.Show()」。這個方法ShowForm()暴露給COM,所以我可以從vb6/vbscript調用這個方法。爲什麼從VBScript
所以,我的問題是:
當我打電話ShowForm在一個按鈕單擊事件在VB6()方法,在C#API創建的形式顯示出來,但如果我實例相同的類和調用相同的方法在VBScript中,表單不顯示。 (),
- 從「form1.Show()」到「form1.ShowDialog()」,它會在vb6/vbscript中顯示。但是,它顯示爲一種模式形式,我想要的是無模 或
- 從「form1.Show()」到「Application.Run(form1)」。它會以vbscript顯示,但不會在vb6中顯示(它實際上顯示在vb6中,但在我用C#關閉窗體後崩潰)
我該怎麼做才能使其在vb6和vbscript中正常工作?您的建議非常感謝
PS:它沒有腳本語法問題或COM問題。它應該是與form.show()/ ShowDialog()/ Application.Run()或消息循環thingy這是我真的不明白的事情
我的代碼會或多或少像這樣。
//C# code
public void ShowForm()
{
m_frm.tempWebBrowser.Navigate("http://stackoverflow.com", "_self", Encoding.Default.GetBytes(""), "Content-Type: application/x-www-form-urlencoded");
m_frm.FormBorderStyle = FormBorderStyle.Sizable;
m_frm.ShowInTaskbar = true;
m_frm.WindowState = FormWindowState.Maximized;
m_frm.tempWebBrowser.Visible = true;
m_frm.Show();
}
//VB6 code, vbscript also using exactly the same code in the event
Private Sub Command1_Click()
Dim tempClass
Set tempClass = CreateObject("myClass.API")
tempClass.ShowForm
End Sub
我不知道VB6/VBscript中的多線程,但讓我花一些時間來嘗試一下,然後再發表評論 –