在我的项目中,我正在使用Web浏览器控件。我还可以使用以下帮助在同一浏览器控件中处理新窗口,所以请回答:
SO Answer To Open New Window In Same Webbrowser Control
但是我面临的问题是,如果我提交了在新窗口中无法正常使用的表单。
我已经注意到SHDocVw Newwindow事件具有PostData(作为对象)参数,但是Web浏览器控件需要PostData作为字节数组。
SHDocVw Newwindow事件参数:
(URL As String, Flags As Integer, TargetFrameName As String, ByRef PostData As Object, Headers As String, ByRef Processed As Boolean)
Webbrowser控件的导航参数:
(string source, string targetFrameName, byte[] postData, string additionalHeaders);
正如我的代码所问的那样:(但是与所提到的SO答案相同,我认为这没有帮助)
Private Sub Web_V1_NewWindow(URL As String, Flags As Integer, TargetFrameName As String, ByRef PostData As Object, Headers As String, ByRef Processed As Boolean) Handles Web_V1.NewWindow
Processed = True
webMain.Navigate(URL)
End Sub
所以,我的问题是我如何将Postdata对象转换为字节数组,以便Webbrowser控件可以正确处理提交的表单/数据?