我正在尝试从 Windows 窗体上的 LinkLabel 打开浏览器窗口。单击时,控制传递给 LinkClicked 事件,代码调用默认浏览器使用:
System.Diagnostics.Process.Start("http://www.google.com");
我希望能够单击链接(即多次运行“开始”),但只能单击同一个浏览器窗口或选项卡。当然,多次点击每次都会打开一个新的 Google 标签页。我知道如何使用如下链接指定命名窗口:
<a href="http://www.google.com" target="googlewin">Click Here!</a>
但是我如何在“开始”命令中执行此操作?
预计到达时间:我在“关于”表单上单击了 Internet Explorer 自己的可链接链接,它每次都会打开一个新窗口,所以也许连 Microsoft 都做不到。嗯。
最佳答案
对于 Internet Explorer,您可以使用 SHDocVw 程序集执行此操作。
无需使用 process.start,只需创建一个 SHDocVw.InternetExplorer 实例,并在需要时使用它在同一浏览器中导航。这是一个简单的例子。
private SHDocVw.InternetExplorer IE;
private void Form1_Load(object sender, EventArgs e)
{
IE = new SHDocVw.InternetExplorer();
IE.Navigate("http://stackoverflow.com/");
IE.Visible = true;
}
private void button1_Click(object sender, EventArgs e)
{
IE.Navigate("http://google.com/");
}
如果您特别希望使用 Process.start,那么对于 Internet Explorer,您可以遍历 SHDocVw.ShellWindows 以找到您希望用于导航的 Internet Explorer。
foreach (SHDocVw.InternetExplorer IE in new SHDocVw.ShellWindows()) {
if (IE.FullName.ToLower.Contains("iexplore") & IE.LocationURL.ToLower.Contains("someurl")) {
IE.Navigate("http://google.com/");
}
}
关于c# - 如何从 Process.Start 打开指向同一浏览器窗口或选项卡的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713991/