打開關閉我的博客側邊欄——Word 2007高級應用(七)
My Blogs按鈕的實現主要有如下要求:
Word 2007啟動的時候,"我的博客"側邊欄會被加載但不顯示。
當My Blogs按鈕處於按下狀態時,顯示"我的博客"側邊欄;當My Blogs按鈕處於釋放狀態時,隱藏"我的博客"側邊欄。
顯示"我的博客"側邊欄的途徑只有一個,就是通過My Blogs按鈕,但隱藏它則有兩個途徑:通過My Blogs按鈕或者位於它的右上角的X按鈕。無論用戶通過那種途徑隱藏"我的博客"側邊欄,我們都必須保證My Blogs處於正確的狀態。
首先,我們修改一下ThisAddIn.cs裡的代碼,去掉ThisAddIn_Startup()方法裡顯示"我的博客"側邊欄的語句(即把其Visible屬性設為true那句):
接著,回到BloggingRibbon設計器,為My Blogs的Click事件添加Event Handler:
當我們創建一個Word Add-in項目時,Visual Studio 2008 Beta 2會自動為你創建一個Globals的類,通過這個類的ThisAddIn屬性,你可以訪問插件的實例。在ThisAddIn類中有一個 CustomTaskPanes屬性,它的類型是CustomTaskPaneCollection,裡面存放著我們添加進去的 CustomTaskPane,其中就包括"我的博客"側邊欄。這樣,我們就可以在CustomTaskPanes中選出"我的博客"側邊欄,並把My Blogs按鈕的Checked屬性的值同步到它的Visible屬性,從而控制它的顯示與隱藏了。值得提醒的是,我在這裡假設了只有"我的博客"側邊欄 的Title屬性的值是My Blogs。
當用戶點擊"我的博客"側邊欄右上角的X按鈕關閉它時,我們需要正確同步My Blogs按鈕的狀態,這可以通過處理"我的博客"側邊欄的VisibleChanged事件做到:
值得提醒的是,Visual Studio 2008 Beta 2在創建My Blogs按鈕的變量tgbMyBlogs時把它的訪問修飾符設定為internal,於是,我們可以在ThisAddIn類裡面直接對它進行修改。另 外,你也可以把Code #01的m_MyBlogsPane的訪問修飾符改為internal,這樣就可以在Code #02中對Globals.ThisAddIn.m_MyBlogsPane.Visible屬性直接修改而不需要查找了。
現在,我們來看看運行效果:
圖
下一篇將為大家介紹添加/刪除博客信息