private WebBrowser GetActiveBrowser( object source )
{
WebBrowser activeBrowser = null;
this.UIThreadInvoke( delegate
{
activeBrowser = elementHost1.Child as WebBrowser;
var tab = source as string;
if (string.IsNullOrEmpty( tab ))
{
tabControl.SelectTab( tabControl.TabPages[0] );
}
else
{
TabPage selectedPage = null;
foreach (TabPage tabPage in tabControl.TabPages)
{
if (tabPage.Text.Equals( tab ))
{
selectedPage = tabPage;
break;
}
}
if (selectedPage == null)
{
selectedPage = new TabPage( tab );
tabControl.TabPages.Add( selectedPage );
var output = new WebBrowser();
var elementHost = new ElementHost();
elementHost.Dock = DockStyle.Fill;
elementHost.Location = new Point( 3, 3 );
elementHost.MinimumSize = new Size( 20, 20 );
elementHost.Name = "output" + tabControl.TabPages.Count;
elementHost.Size = new Size( 704, 155 );
elementHost.TabIndex = 1;
elementHost.Child = output;
selectedPage.Controls.Add( elementHost );
}
tabControl.SelectTab( selectedPage );
var host = selectedPage.Controls[0] as ElementHost;
if (host != null)
activeBrowser = host.Child as WebBrowser;
}
} );
return activeBrowser;
}