禁用"后退按钮"一旦没有网站可以回复

时间:2017-01-12 20:50:42

标签: c# button web browser back

我基本上学习了C#并使自己变成了一个简单的网络浏览器并添加了#34;返回"和"前进"用于浏览我打开的网站的按钮。嗯,问题是,如果没有更多的网站可以恢复,我无法弄清楚如何禁用它们。

我尝试将这个简单的代码放入我的表单构造函数中,但似乎它没有任何影响......

        if (webBrowser1.CanGoBack == false)
        {
            backButton.Enabled = false;
        }
        else
        {
            backButton.Enabled = true;
        }

4 个答案:

答案 0 :(得分:0)

构造函数中的代码只会被调用一次。因此,如果将代码放在代码可以多次调用代码的位置,那会更好。可能会触发您在表单控件上的事件或任何自定义按钮。

答案 1 :(得分:0)

查看您的代码我会说每次浏览器导航时都需要执行代码,而不是在初始化表单时执行,MSDN文章确实显示了更好的设置方法并提供了一些关于cangoback方法的解释。

答案 2 :(得分:0)

因此,不仅要告诉程序要做什么,还要做什么时候做。在构造函数中使用启用/禁用逻辑说“当表单加载时,请检查并启用/禁用它。”

但是一旦你传递了构造函数,没有什么能告诉它什么时候改变它的启用/禁用状态。

尝试使用Event Handlers让您的程序知道“嘿,我需要更新这些按钮的启用状态”

答案 3 :(得分:0)

非常感谢你的帮助! 把我的代码放到一个事件中就可以了......

    private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {
        progressBar1.Value = 0;
        comboBox1.Text = webBrowser1.Url.ToString();

        if (webBrowser1.CanGoBack == false)
        {
            backButton.Enabled = false;
        }
        else
        {
            backButton.Enabled = true;
        }


        if (webBrowser1.CanGoForward == false)
        {
            forwardButton.Enabled = false;
        }
        else
        {
            forwardButton.Enabled = true;
        }

    }