我尝试使用带有特定 html 内容的 DotNetBrowser 控件打开一个窗体,如下代码所示。
单击 html 按钮后,我需要隐藏加载的表单,然后显示第二个 Windows 表单。
我使用的c#代码如下:
public partial class Form1 : Form
{
private Browser browser;
public Form1()
{
InitializeComponent();
browser = BrowserFactory.Create();
browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
{
if (e.IsMainFrame)
{
JSValue value = browser.ExecuteJavaScriptAndReturnValue("window");
value.AsObject().SetProperty("Account", new Form1());
}
};
browser.LoadHTML(@"<!DOCTYPE html>
<html>
<head>
<script type='text/javascript'>
function sendFormData() {
var firstNameValue = myForm.elements['firstName'].value;
var lastNameValue = myForm.elements['lastName'].value;
// Invoke the 'save' method of the 'Account' Java object.
Account.Save(firstNameValue, lastNameValue);
}
</script>
</head>
<body>
<form name='myForm'>
First name: <input type='text' name='firstName'/>
<br/>
Last name: <input type='text' name='lastName'/>
<br/>
<input type='button' value='Save' onclick='sendFormData();'/>
</form>
</body>
</html>");
BrowserView browserView = new WinFormsBrowserView(browser);
this.Controls.Add((Control)browserView.GetComponent());
}
public void Save(String firstName, String lastName)
{
string _firstname = firstName;
this.Hide();
SecondForm frm = new SecondForm(firstName);
frm.ShowDialog();
}
问题是,第一个表单(持有浏览器控件)没有隐藏并且仍然集中。
任何帮助将不胜感激。