/// <summary> /// Event handler for CommandStateChange -- update our internal command states /// then re-fire this event to listeners. /// </summary> /// <param name="sender">object sending the event</param> /// <param name="e">event parameters</param> private void AxWebBrowser_CommandStateChange( object sender, DWebBrowserEvents2_CommandStateChangeEvent e) { // constants representing possible command state changes const int CSC_UPDATECOMMANDS = -1; const int CSC_NAVIGATEFORWARD = 1; const int CSC_NAVIGATEBACK = 2; // Back button state changed if (e.command == CSC_NAVIGATEBACK) { m_goBackCommand.SetEnabled(e.enable); } // Forward button state changed else if (e.command == CSC_NAVIGATEFORWARD) { m_goForwardCommand.SetEnabled(e.enable); } // General command state change else if (e.command == CSC_UPDATECOMMANDS) { // Do manual update on m_stopCommand m_stopCommand.SetEnabled(m_browser.Busy); // No update needed for m_refreshCommand or m_goHomeCommand // (both are always enabled) } // fire the CommandStateChanged event so listeners can update their UI OnCommandStateChanged(EventArgs.Empty); }
protected void AxWebBrowser_CommandStateChange(object sender, DWebBrowserEvents2_CommandStateChangeEvent e) { if (e.command.Equals(SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEBACK)) { MenuItem miView = MenuMain.MenuItems[2]; MenuItem miGoTo = miView.MenuItems[3]; miGoTo.MenuItems[0].Enabled = e.enable; TbBack.Enabled = e.enable; } if (e.command.Equals(SHDocVw.CommandStateChangeConstants.CSC_NAVIGATEFORWARD)) { MenuItem miView = MenuMain.MenuItems[2]; MenuItem miGoTo = miView.MenuItems[3]; miGoTo.MenuItems[1].Enabled = e.enable; TbForward.Enabled = e.enable; } if (e.command.Equals(SHDocVw.CommandStateChangeConstants.CSC_UPDATECOMMANDS)) { Int32 EnabledTest = Convert.ToInt32(SHDocVw.OLECMDF.OLECMDF_SUPPORTED) + Convert.ToInt32(SHDocVw.OLECMDF.OLECMDF_ENABLED); bool RefreshTest = EnabledTest.Equals(AxWebBrowser.QueryStatusWB //Refresh (SHDocVw.OLECMDID.OLECMDID_REFRESH)); TbRefresh.Enabled = RefreshTest; TbMail.Enabled = RefreshTest; TbEdit.Enabled = RefreshTest; TbStop.Enabled = AxWebBrowser.Busy; TbPrint.Enabled = EnabledTest.Equals(AxWebBrowser.QueryStatusWB (SHDocVw.OLECMDID.OLECMDID_PRINT)); } }
/// <summary> /// 这里控制“前进”和“后退”按钮是否可用 /// </summary> private void AxWebBrowser1_CommandStateChange(object sender, DWebBrowserEvents2_CommandStateChangeEvent e) { if (e.command == 1) { btnGoFoward.Enabled = e.enable; } else if (e.command == 2) { btnGoBack.Enabled = e.enable; } }