部分代码如下:
创新互联公司专注于海城企业网站建设,自适应网站建设,商城网站建设。海城网站建设公司,为海城等地区提供建站服务。全流程按需制作,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
在窗口及WebBrowser创建完以后,写此代码:
WebBrowser.OnNewWindow2:=IE1NewWindow2;
给主窗口创建一个方法:
procedure TBrowForm.IE1NewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);
Var NewForm:TBrowForm;
begin
try
NewForm :=TPopBrowerForm.Create(application);
NewForm.WebBrowser.OnNewWindow2 :=IE1NewWindow2;//如果在窗口的Oncreate事件
//有此代码,此处就可以省略
ppDisp := NewForm.WebBrowser.Application;
NewForm.Show;
Cancel:=false;
except
end;
end;
【首发答案】
在NewWindow事件中,
Private Sub WebBrowser1_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles WebBrowser1.NewWindow
Dim newUrl = WebBrowser1.StatusText
'Dim newUrl = WebBrowser1.Url.AbsoluteUri '是这个还是上面那个的我忘了..你都试试..
WebBrowser1.Navigate(newUrl) '加载新的网址
e.Cancel = True '使外部浏览器无法捕获此事件
End Sub
这样写,每次点击按钮事件都会创建一个新的form。
你想要的效果是主窗口生命周期内,子form是一个。
根据这个你再考虑下怎么实现。比如主form加载时创建子form。点击事件中去获取子form的焦点。
webbrowser的newwindows中写代码
1 不弹出新窗口,但跳转到新网页
Set ppDisp = WebBrowser.Object
2 禁止弹出
cancel=true
If App.PrevInstance = True Then
End
End If
如果程序正在运行,结束程序。
在模块中加入每个窗口的标题变量。
然后用if then 来判断是否有相同窗口。
如果你事先不知道有哪些窗口的话,那你就用枚举 FindWindow来查找子窗口句柄。再用SendMessage 获得窗口标题再进行判断。
登陆按钮里写:
private void button1_Click(object sender, EventArgs e)
{
Form2 fo1 = new Form2();
fo1.Show();
this.Visible=false;
}
第2个窗体的关闭事件里写
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
这样就可以了
me.dispose(); 这个是释放本对象的资源,,有时候直接把这个对象就清理了,,登陆窗体如果是入口窗体的话,,这么写就等于Application.Exit();
直接关整个应用程序了
插红旗噢 我还去vs里敲了一下
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款