List<string> info = new List<string>();            info.Add("www.baidu.com");
            info.Add("www.google.com");            for (int ii = 0; ii < 3; ii++)
            {
                foreach (string item in info)
                {
                    System.Diagnostics.Process.Start(item);
                }
            }
如上代码,运行后会启动一个浏览器分6个tab表示。
现在的要求是要启动3个浏览器,每个浏览器分2个tab显示,
请问如何实现!

解决方案 »

  1.   

    IEXPLORE.exe -new -e "www.google.com"
      

  2.   

    谢谢,
    也就是说通过Start方法的参数可以控制吗? List <string> info = new List <string>();             info.Add("www.baidu.com"); 
                info.Add("www.google.com");             for (int ii = 0; ii < 3; ii++) 
                { 
                    foreach (string item in info) 
                    {   
                       if (intCount % info.Count == 0)
                        {
                           //启动新的浏览器
                          System.Diagnostics.Process.Start(item); 
                        }
                        else
                        {
                          //在上边启动的浏览器的基础上分tab显示
                          System.Diagnostics.Process.Start(item);                       
                        } 
                    } 
                } 参数应该怎样写呢?
      

  3.   

    简单的说,System.Diagnostics.Process.Start(item); 如果已经打开了多个ID,
    通过上边的函数能不能指定IE?
      

  4.   

    为什么我用楼主的代码直接编译运行后浏览器只打开一个Tab(主页为google)
    插入断点后一步一步走才能打开6个Tab
    求高手解答哈
      

  5.   

    补充一下哈,我用的VS2008,IE8浏览器
    后来用火狐3直接编译运行可以打开6个Tab。。
    难道是浏览器的问题??
      

  6.   

    那估计是程序执行太快了,在调用Start之前加上下边的代码就好了。System.Threading.Thread.Sleep(1000);
      

  7.   

    IE的参数说明
    http://wy.cnii.com.cn/20041105/ca343809.htm◆-new打开一个新的进程并启动一个新的IE。你可以参考一下
      

  8.   

    经过测试,以下代码可以实现LZ的要求,别忘了给我加分哦
            List<string> info = new List<string>();        info.Add("www.baidu.com");
            info.Add("www.google.com");        for (int ii = 0; ii < 3; ii++)
            {
                for (int j = 0; j < info.Count; j++)
                {
                    if (j == 0)
                    {
                        //启动新的浏览器 
                        System.Diagnostics.Process.Start("IEXPLORE.exe",info[j]);
                    }
                    else
                    {
                        //在上边启动的浏览器的基础上分tab显示 
                        System.Diagnostics.Process.Start(info[j]);
                    }
                }
            } 
      

  9.   


    以这个代码为例,我想实现的是,打开3个IE,每个IE 2个tab,分别是baidu和google。解决了马上给分。
      

  10.   

    补充,我的开发环境是vista,浏览器是IE8。
      

  11.   

    再请问, System.Diagnostics.Process.Start(); 假设现在启动了多个IE,
    现状是通过上边的方法启动IE,会默认在第一次打开的IE的
    基础上开启一个TAB。通过上边的方法能指定IE吗,
    或者有其他方法,这样的需求理论上能实现吗?
      

  12.   


    Public Class Form1    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim info As New List(Of String)
            info.Add("http://www.baidu.com")
            info.Add("http://www.google.cn")        For i As Integer = 0 To 2
                Dim frm As New frmBrowser With {.Visible = True, .Text = "浏览器" + i.ToString}
                For Each Str As String In info
                    frm.Addtab(Str)
                Next
            Next
        End SubEnd ClassPublic Class frmBrowser
        Inherits System.Windows.Forms.Form    Private tab As TabControl    Public Sub New()
            tab = New TabControl
            tab.Dock = DockStyle.Fill
            Me.Controls.Add(tab)
        End Sub    Public Sub Addtab(ByVal url As String)
            Dim page As New TabPage(url)
            Dim browser As New WebBrowser With {.Url = New Uri(url), .Dock = DockStyle.Fill}
            page.Controls.Add(browser)
            tab.TabPages.Add(page)
        End SubEnd Class
      

  13.   


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();           
            }        private void Form1_Load(object sender, EventArgs e)
            {
                List<string> info = new List<string>();
                info.Add("http://www.baidu.com");
                info.Add("http://www.google.cn");            for (int i = 0; i <= 2; i++)
                {
                    frmBrowser frm = new frmBrowser { Visible = true, Text = "浏览器" + i.ToString() };
                    foreach (string Str in info)
                    {
                        frm.Addtab(Str);
                    }
                }         }                   }    public class frmBrowser : System.Windows.Forms.Form
        {        private TabControl tab;        public frmBrowser()
            {
                tab = new TabControl();
                tab.Dock = DockStyle.Fill;
                this.Controls.Add(tab);
            }        public void Addtab(string url)
            {
                TabPage page = new TabPage(url);
                WebBrowser browser = new WebBrowser { Url = new Uri(url), Dock = DockStyle.Fill };
                page.Controls.Add(browser);
                tab.TabPages.Add(page);
            }    } 
    }
      

  14.   

    TO:wzuomin 非常感谢,效果大体上就是这个了,
    但是这样子把IE嵌套到form中,
    不是客户想要的,如果能直接在IE中
    实现,或者是把工具栏什么的弄
    的和IE一样也行。结贴给分!
      

  15.   

    UP。。OFFICE。。微软的东西是乱。。
    个.net部署就象拉皮条一样
      

  16.   

    经过测试,可以实现LZ的要求:打开3个IE,每个IE 2个tab,分别是baidu和google。 
    测试环境是:VS2005+IE7,加上Thread.Sleep(1000)是为了避免执行太快,标签打开不正确List<string> info = new List<string>();            info.Add("www.baidu.com");
                info.Add("www.google.com");            for (int ii = 0; ii < 3; ii++)
                {
                    for (int j = 0; j < info.Count; j++)
                    {
                        if (j == 0)
                        {
                            //启动新的IE浏览器 
                            System.Diagnostics.Process.Start("IEXPLORE.exe", info[j]);
                        }
                        else
                        {
                            //在上边启动的浏览器的基础上分tab显示 
                            System.Diagnostics.Process.Start(info[j]);
                        }
                        System.Threading.Thread.Sleep(1000);
                    }
                } 
      

  17.   

    非常感谢,但是我这里执行的结果是,打开了3个IE,
    第一个IE有4个tab,剩下2个IE各有一个tab。也就是说
    执行System.Diagnostics.Process.Start(info[j]); 
    的时候,始终默认的是第一个IE。
      

  18.   

    补充,我这里是vista,IE8环境,
    难道是环境的问题?
      

  19.   

    因机子环境的版本不同,建议你改变一下Thread.Sleep(1000)里的数值试试
    可以设置断点调试看看执行过程,自己再稍微改变代码进行测试
      

  20.   

    这种东西必然跟浏览器有关。如果电脑上是IE6,怎么可能启动新tab,而程序中并没有体现启动新tab的过程