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