C#从网格中删除子项(标签)

时间:2014-03-21 16:03:03

标签: c# windows-phone-8 tabs

大家好。 我正在对网站上的代码进行一些测试,它在Windows手机应用程序中添加了webbrowser控件。 WebBrowser控件Windows Phone不支持选项卡式浏览,因此此代码可以执行此操作。现在我想要的是删除添加的这些浏览器控件,但我想删除网格中的特定webbrowser控件,然后才能添加其他控件。 代码是这样的:

public partial class MainPage : PhoneApplicationPage
{
private const int NumTabs = 20;

private int currentIndex;
private string[] urls = new string[NumTabs];
private WebBrowser[] browsers = new WebBrowser[NumTabs];

public MainPage()
{
    InitializeComponent();
    ShowTab(0);
}

private void ShowTab(int index)
{
    this.currentIndex = index;
    UrlTextBox.Text = this.urls[this.currentIndex] ?? "";
    if (this.browsers[this.currentIndex] == null)
    {
        WebBrowser browser = new WebBrowser();
        this.browsers[this.currentIndex] = browser;
        BrowserHost.Children.Add(browser);
    }
    for (int i = 0; i < NumTabs; i++)
    {
        if (this.browsers[i] != null)
        {
            this.browsers[i].Visibility = i == this.currentIndex ? Visibility.Visible : Visibility.Collapsed;
        }
    }
}

private void UrlTextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        Uri url;
        if (Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url))
        {
            this.urls[this.currentIndex] = UrlTextBox.Text;
            this.browsers[this.currentIndex].Navigate(url);
        }
        else
            MessageBox.Show("Invalid url");
    }
}

private void TabMenuItem_Click(object sender, EventArgs e)
{
    int index = Int32.Parse(((ApplicationBarMenuItem)sender).Text) - 1;
    ShowTab(index);
}
}

这里的一切都有效,但我该怎么删除? 我尝试了这个,但它删除了整个webbrowser控件,我将来无法添加。或者只是抛出异常。

private void RemoveTab(int index)
{
   this.currentIndex = index;
   if (this.browsers[this.currentIndex] != null)
    {

       this.BrowserHost.Children.RemoveAt(index);

     }


}

请为那些掌握C#的人请求帮助,因为我是C#的新手并且不知道如何解决......

我感谢:)。

0 个答案:

没有答案