Office 檔上的 Windows Forms 控件限制
新增至 Microsoft Office Word 檔或 Microsoft Office Excel 工作表的 Windows Forms 控制件,以及新增至 Windows Forms 的 Windows Forms 控件之間有一些差異。 例如,當您將Button控件新增至檔時,、Anchor、 和 TabIndex 等Dock屬性不會如您所預期般運作。
其中許多差異是由 Windows Forms 控制件裝載於檔的方式所造成。 將 Windows Forms 控件新增至檔時,Visual Studio Tools for Office 運行時間會內嵌 ActiveX 控件,然後在文件中裝載 Windows Forms 控件。 Windows Forms 控制件不會直接內嵌在檔中。
適用於: 本主題中的資訊適用於 Excel 和 Word 的文件層級專案和 VSTO 載入宏專案。 如需詳細資訊,請參閱 Office 應用程式 lication 和項目類型所提供的功能。
Windows Forms 控制件的方法和屬性限制
Windows Forms 控件有許多方法與屬性在 Windows Form 上無法以相同方式在文件上運作,因此,建議不要使用它們。 例如,設定 和 Anchor 之類的Dock屬性只會影響控件相對於容器 ActiveX 控件的位置,而不是檔。 以下是 Word 和 Excel Windows Forms 控件不支援的方法和屬性清單:
Excel 控制件不支援的屬性:
Word 控制項不支援的方法和屬性:
您也無法設定 Left 與 Word 檔上文字一致之 Windows Forms 控件的 或 Top 屬性。 在下列情況下,Windows Forms 控件會與文字一致新增:
您以程式設計方式將控件新增至 Word 檔,並使用指定位置範圍的方法。
您可以在設計時間將 Windows Forms 控制項新增至 Word 檔。 您可以藉由修改設計工具中的控制項來變更此專案。
Office 檔上的 Windows Forms 控件差異
Windows Forms 控件在 Office 文件上的行為通常與 Windows Form 上的行為相同,但有些差異確實存在。 下表描述 Office 檔上 Windows Forms 控件存在的差異。
功能 | 差數 |
---|---|
控制定位順序 | 您無法透過放在 Excel 工作表或 Word 檔上的控制件進行索引標籤。 |
控件群組 | 您無法使用 GroupBox 控制項在 Office 檔中包含其他控制項。 當您將多個單選按鈕直接新增至檔時,單選按鈕不會互斥。 您可以撰寫程式代碼,讓單選按鈕互斥;不過,慣用的方法是將單選按鈕新增至使用者控件,然後將使用者控件新增至檔。 如需詳細資訊,請參閱 Office 開發範例和逐步解說中的 Word 控件範例或 Excel 控件範例。 |
控制項類型 | 在檔上使用的 Windows Forms 控件會包裝在 Visual Studio Tools for Office 運行時間提供的類別中,以提供 Excel 工作表或 Word 檔專屬的控件其他功能。 例如,如果您在 Excel 工作表上有 Button 控件,請務必指定類型, Button 而不是 Button 在參考或轉換物件時。 |
控制位置和大小 | 控件的大小和位置取決於屬於容器 ActiveX 控件一部分的屬性。 ActiveX 控件屬性接受的值與 Windows Forms 控件的對等屬性不同。 當您設定控制件的Top 、 Left 或 Height Width 屬性時,它會以點為單位來測量,而不是以像素為單位。 |
Word 檔上的控制位置 | 如果您將控件新增至以流程為基礎的版面配置,請記住控件會在內容變更時隨內容一起流動。 當您從 [工具箱 ] 拖曳控件時,無法將控件錨定至段落,因為控件會以文字的方式新增至 Word 檔。 如果您使用其他方法來新增控件,例如按兩下控件,則會根據您為插入圖片設定的 Word 選項插入控制項。 您無法設定 Left 內嵌文字之控件的 或 Top 屬性。您無法將控制件放在頁首或頁尾,或放在子檔中。 |
控制事件 | 選取控件時,它會依下列順序引發事件: 1. Enter 2. GotFocus 取消選取控件時,它會以下列順序引發事件: 1. Leave 2. Validating 3. Validated 4. LostFocus |
控制調整 | 當您將檔的縮放設定變更為 100% 以外的任何控件時,控件會停用,不過它們似乎會隨著檔縮放。 例如,如果您在檔的縮放比例為 130% 時按鍵,則會顯示控件已停用的訊息,直到縮放設定為 100%。 當您將縮放比例變更為 100% 時,控件會正常運作。 |
控制屬性值 | 雖然 Windows Form 上控件的屬性會設定為整數值,但它們會設定為 Word 檔上控制件的單一。 在Excel中,控件的屬性值會設定為 double。 Height 如果工作表上控件的 和 Width 屬性超過工作表或畫面的大小,則會截斷值。 |
控件重設大小 | 如果您使用八個重設大小控點之一來調整檔上的控件大小,則在重新選取控件之前,新的控件維度不會反映在 [屬性 ] 視窗中。 |
控件行為 | 當工作表視窗分割時,Excel 工作表上的控件可能會無法預期。 例如,工作表上的 存取 TextBox 可能只能在其中一個視窗中使用。 |
控制命名 | 您無法使用保留字來命名控制件。 例如,如果您將 新增 Button 至工作表,並將名稱變更為 System,則建置專案時會發生錯誤。 |
以程序設計方式新增控制件 | 請勿使用 控制項的建構函式,在運行時間將控件新增至您的檔。 請改用 Visual Studio Tools for Office 運行時間 所提供的協助程式方法。 例如,使用 AddButton 方法將按鈕新增至工作表。 如果您想要新增這些協助程式方法不支援的控制項,您可以使用 AddControl 方法。 如需詳細資訊,請參閱 在運行時間將控件新增至 Office 檔。 |
複製控制項 | 如果您複製 Windows Form 控制項並在執行時間貼到檔中,則會將空白容器 ActiveX 控制件貼到檔案中。 Windows Forms 控制項不會出現在新的位置,原始控件背後的程式代碼不會複製到容器 ActiveX 控制件。 |
檔層級專案中的限制
在檔上使用 Windows Forms 控制件的一些限制對檔層級專案而言是唯一的。
在設計時間控制支援
當 Visual Studio 設計工具中開啟 Excel 工作表或 Word 檔時,某些 Windows Forms 控件會從 [工具箱 ] 中移除。 這是因為技術限制,或是因為 Word 或 Excel 中已有功能可用。 Excel 和 Word 專案支援檔案焦點時出現在 工具箱 中的所有 Windows Forms 控制件和其他元件,您也可以將第三方控制項新增至工作表或檔。
注意
當檔受到保護時,所有控件都會從 [工具箱 ] 中移除。 如需文件保護的相關信息,請參閱 檔層級解決方案中的文件保護。
注意
第三方控件必須將 ComVisibleAttribute 屬性設定為 true ,才能用於 Office 方案。
工具箱中無法使用下列控制項和元件:
支援舊版 ActiveX 控制件
如果您建立使用包含 ActiveX 控制件的現有 Word 檔或 Excel 活頁簿的檔層級 Office 專案,則 ActiveX 控制件的功能不會遺失;不過,不支援從 Visual Studio 將新的 ActiveX 控件新增至您的檔。 例如,如果您的 Word 檔有執行 Visual Basic for Applications (VBA) 宏的 [控件 ] 工具箱中的按鈕,它將會在 Office 專案中使用文件之後繼續執行宏。 不過,建議您移除 ActiveX 控制件和 VBA 宏,並以 Windows Forms 控件和 Managed 程式代碼取代它們。