翻譯|使用教程|編輯:莫成敏|2019-10-29 10:35:19.873|閱讀 285 次
概述:VARCHART XGantt是用于工業4.0項目管理、交互式的甘特圖絕佳解決方案,世界級甘特圖大師。本文描述在啟用實時更新的拖放交互過程中,接收和處理有關對象的信息將非常有用,這是后面半部分內容哦~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VARCHART XGantt是一個交互式的甘特圖控件,其模塊化的設計讓您可以創建滿足您和您的客戶所需求的應用程序。(我們領先的甘特圖控件VARCHART XGantt可用于.NET,ActiveX和ASP.NET應用程序。)除此之外,同時還具有一個穩定可靠的甘特圖工具,在編寫第一行代碼之前,您就可以知道是否可以滿足客戶的需求。
在啟用實時更新的拖放交互過程中,接收和處理有關對象的信息將非常有用。本文介紹該教程的后面一部分內容,內容緊接前文哦~
交互事件
如前面所述,現在在交互過程中和交互結束時引發對象事件。事件處理程序的簽名,例如這里的VcNodeModifying事件的值沒有變化。但是如何識別事件是在交互過程中還是在交互結束時引發的?
這可能很重要,因為例如,并非將鼠標移動引起的每一個修改都存儲到數據庫中:這將導致過多的耗時工作。當然,僅應在操作完成后存儲數據。
現在,可以通過伴隨并描述交互的一些新事件來解決此問題,并且可以在交互過程中的對象事件中對其進行評估。
按下鼠標左鍵后,VcInteractionStarted事件將傳遞有關鼠標鍵所在的對象(對象和對象類型)以及該對象發生了什么的信息。交互所需的一切都可以準備好。
提示:還可以在此處切換特定于對象和上下文的更新行為。在極端情況下,一個節點可能會完全動態地做出反應,而另一個節點會帶有藍色的幻影幀。此外,相應的設置(InInteractionEventsEnabled)允許有關是否在交互過程中也要發生對象事件的單獨決定。
示例:節點
buy
對象:NodeObject
類型:vcObjTypeNodeInDiagram
OperationMode:vcIIMMoveNode
按下鼠標左鍵時,VcInteractionStarted事件顯示圖表中節點的移動已經開始。
應該伴隨交互的信息或元素可以在此處初始化。
創建對象
在某些互動中,最初沒有可用的對象,例如創建節點或框時。在這種情況下,事件VcInteractionObjectChanged會在內部創建對象后立即發生,這是涉及節點的實際圖表節點。
該動作的結束由VcInteractionEnded事件指示。在交互過程中使用的所有其他元素都可以在此處刪除。
使用交互事件創建新對象時,過程如下:
VcInteractionStarted
VcInteractionObjectChanged
修改/修改的事件,顯示創建元素時的修改
創建和創建事件
VcInteractionEnded。
互動期間激活了非交互事件
如果在交互過程中也啟用了交互事件(vcGantt.InInteractionEventsEnabled = true),則釋放鼠標鍵時將有一個附加事件,指示這些事件的結束:VcInInteractionEventsEnded。
這使得將交互過程中引發的對象事件與交互結束時引發的對象事件區分開來變得容易。如果引發此事件,則下一個對象事件將是結束事件。
可能的情況
換句話說,使用交互事件時有兩種可能的情況。
控制與以下對象的交互:
非交互事件已關閉
非交互事件已打開
停用非交互事件時與所涉及對象的事件進行協作
屏幕截圖顯示了在關閉非交互事件(vcGantt.InInteractionEventsEnabled = false)時,Interaction(黃色閃電)和對象事件(赭色和綠色閃電)如何協作:
交互開始,由InteractionStarted事件指示。
釋放鼠標鍵時,對象事件首先出現,例如VcNodeModifying和VcNodeModified帶有節點。換句話說,這是關于對象事件的舊行為,因此,如果不使用InInteraction事件,則無需修改對象事件中的現有代碼。
交互的結束由VcInteractionEnded事件指示。
與相關對象的事件合作,而InInteraction事件已激活
如果使用了InInteraction事件,則會出現以下事件:
VcInteractionStarted在按下鼠標左鍵時開始
鼠標移動時的Modifying和Modified事件
VcInInteractionEventsEnded,然后釋放鼠標左鍵時完成對象事件
VcInteractionEnded指示交互結束。
示例:移動節點:
當鼠標光標位于某個節點上時,如果按下鼠標左鍵,則交互開始。出現事件VcInteractionStarted。
移動鼠標時出現的事件表示實際節點的狀態(VcNodeModifying),而在更新時(VcNodeModified1>)圖表節點。
釋放鼠標鍵時,將出現VcInInteractionEventsEnded事件
對象事件VcNodeModifying和VcNodeModified指示交互結束時圖表節點的狀態。
最后出現的是VcInteractionEnded事件。
示例:設置節點更新行為“鼠標移動”時對象事件的行為
由于VcNodeModifying事件允許修改EventReturnstatus(e.ReturnStatus),因此現在也可以在交互過程中完成此操作。
因此,如果e.ReturnStatus = ReturnStatusFalse指示所提供的數據不是“有效的”,則圖表中的對象將不會隨著下一次可能的更新而刷新,并且不會引發相應的VcNodeModified事件。
通過將對象保留在其舊位置并通過幻像指示當前位置,可以看到該圖像。
通過實物可視化的對象(當前僅節點和節點框)的狀態指示如下:
當前位置通過變亮的實部來可視化,事件中仍會提供其值。
最后一個有效狀態,即最后一個未將ReturnStatusFalse返回為e.ReturnStatus的狀態,由另一個實數表示,表示那里“被卡住了”。這樣,兩條信息都可以可視化。
在該節點上,最后一個有效狀態的值(即被卡住的實數)與VcNodeModifying-Event中的e.OldNode對應。如果VcInInteractionEventsEnded之前的最后一個VcNodeModifying事件以ReturnStatusFalse完成,則將提供最后一個有效狀態在結束事件中。
可以決定是否接受此狀態。如果在結束事件中設置ReturnStatusFalse,則將恢復原始的開始狀態。
實用技巧:我們建議創建一個“Interactioning InteractionInfo”對象,該對象提供有關事件中交互的所需信息,并可以進行相應的評估。
本教程內容到這里就結束了,感興趣的朋友可以繼續關注我們哦,我們會不斷更新更多內容~您也可以點擊下載VARCHART XGantt試用版進行評估~
相關內容推薦:
VARCHART XGantt用戶手冊(ActiveX版):如何操作互動事件(上)
想要購買VARCHART XGantt正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn