我有一个名为tabControl1的tabcontrol,其中包含选项卡。 Button1在点击时为其添加了一个标签,然后添加了一个浏览器,然后将其导航到google.com。 Button2应该能够将选定选项卡中的浏览器导航到Text1内的文本。
我可以轻松地做到这一点如果C#有指针,就像这样:
WebBrowser* thebrowser;
Button1_Click(object sender, EventArgs e){
TabPage newtab = new TabPage();
WebBrowser newbrowser = new WebBrowser();
newtab.Controls.Add(newbrowser);
newbrowser.Navigate("google.com");
newtab.Click+=delegate {thebrowser = &newbrowser;};
tabControl1.TabPages.Add(newtab);
}
Button2_Click(object sender, EventArgs e){
thebrowser->Navigate(Text1.Text);
}
如果C#有指针的话。现在我如何使用正确的C#代码实现这一目标? 我希望你理解我的问题并对任何错误表示抱歉。
提前致谢:)
答案 0 :(得分:2)
根据我的理解,您需要有多个标签,因此不止一个浏览器同时打开,因此一个lobal变量不起作用。
这样做的一种方法是在所选标签上搜索浏览器。
Button2_Click(object sender, EventArgs e)
{
foreach (Control item in page.Controls)
{
if (item is WebBrowser)
{
((WebBrowser)item).Navigate(Text1.Text);
break;
}
}
}
答案 1 :(得分:2)
好吧,我可能会采用Dictionary<int,Webbrowser>
方式。类似的东西:
Dictionary<int, WebBrowser> browsers = new Dictionary<int, WebBrowser>();
Button1_Click(object sender, EventArgs e){
TabPage newtab = new TabPage();
WebBrowser newbrowser = new WebBrowser();
newtab.Controls.Add(newbrowser);
newbrowser.Navigate("google.com");
tabControl1.TabPages.Add(newtab);
browsers.Add(tabControl1.TabCount-1, newbrowser);
}
Button2_Click(object sender, EventArgs e){
browsers[tabControl1.SelectedIndex].Navigate(Text1.Text);
}