轉帖|使用教程|編輯:鮑佳佳|2021-01-27 11:50:37.703|閱讀 376 次
概述:DotNetBar for Windowsforms中的命令可幫助您將操作(例如按鈕)的發起者與執行該操作的邏輯分開。它們還可以幫助您將當前程序狀態(例如“啟用”,“文本”或“已檢查”)傳達給使用該命令的任何用戶界面組件。這允許多個不同的源調用相同的命令邏輯,并且允許自定義命令邏輯并將其傳達給不同的目標。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
DotNetBar for WinForms是一個擁有89個組件的用戶界面控件套包,用戶可以使用Visual Studio 2005-2015輕松地創建專業的用戶界面。十多年來DotNetBar幫助開發人員輕松地創建易用的專業Windows Forms (WinForms) 用戶界面。DotNetBar是全世界第一個引入全功能Office 2013、Office 2010、Windows 7、 Office 2007 style Ribbon控件以及Visual Studio 2005-2013,Metro等主題風格和樣式的控件。
DotNetBar for Windowsforms中的命令可幫助您將操作(例如按鈕)的發起者與執行該操作的邏輯分開。它們還可以幫助您將當前程序狀態(例如“啟用”,“文本”或“已檢查”)傳達給使用該命令的任何用戶界面組件。這允許多個不同的源調用相同的命令邏輯,并且允許自定義命令邏輯并將其傳達給不同的目標。
命令基于ICommand接口,尤其是實現ICommand接口的Command對象。命令示例包括文件操作(如保存,打開和打印)或編輯命令(如復制,剪切和粘貼)。
使用命令,您可以將執行操作的實際邏輯與調用命令的源分開。您可以有多個調用同一命令的源,并且可以通過該命令將應用程序狀態傳達回使用它的源。
使用Commands的最直接方法是從Visual Studio.NET Toolbox將Command組件添加到表單中,處理其Executed事件,然后通過在源代碼(如ButtonItem)上設置Command屬性,將其分配給所需的任何源代碼。此方法的優點是您可以依靠Visual Studio.NET設計時功能來操縱命令。
另一種方法是將命令定義為靜態類上的靜態成員,并將其分配給用戶界面元素。這種方法的優點是可以輕松地從應用程序的任何形式或部分訪問命令。
命令概念
DotNetBar中的命令模型包含3個主要概念:
指令
通過實現ICommand接口來創建命令。Command對象實現ICommand接口,您可以從其繼承以添加所需的任何自定義功能。
與命令關聯的操作放置在Executed事件處理程序的內部。您可以使用PreviewExecuted事件來決定是否允許觸發Executed事件。Command提供了Execute方法,您可以調用該方法以編程方式引發Executed事件。
命令還提供了使用命令傳播到所有命令源的屬性。這包括“啟用”,“文本”,“已檢查”等屬性。例如,當您設置Enabled屬性時,該值將傳播到支持該屬性的所有命令源。不提供該屬性的源將被忽略。這樣,您可以在無法執行命令時簡單地禁用附加的命令源。此屬性傳播適用于Command對象上公開的所有其他屬性。
要設置在Command上未顯式定義的任何屬性,提供了SetValue方法,該方法允許您按名稱設置屬性。
命令源
命令源是實現ICommandSource接口的任何對象。DotNetBar中的BaseItem類和其他控件都實現ICommandSource接口,您可以在希望添加命令支持的任何其他對象上實現它。
ICommandSource公開了兩個屬性:
在內部,實現ICommandSource的任何對象都將在分配給Command的Execute方法上調用Execute方法,以執行命令操作,以響應某些用戶生成的事件或其他類型的事件。
請注意,某些支持ICommandSource的對象(如LabelItem或LabelX)從不執行命令,而是在命令本身上設置Text或Image屬性時可以反映命令的狀態。
命令管理器
CommandManager對象所代表的Command Manager是綁定Commands和Command Sources的粘合劑。命令源使用它來將源連接到命令(通過RegisterCommand和UnregisterCommand方法)。
通常,除非您在對象上實現ICommandSource,否則根本不需要與CommandManager進行交互。
RibbonPad示例提供了有關如何在應用程序中使用命令的演示。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: