VARCHART XGantt用戶手冊(cè):解讀拖動(dòng)工具(上)
VARCHART XGantt是一個(gè)交互式的甘特圖控件,其模塊化的設(shè)計(jì)讓您可以創(chuàng)建滿足您和您的客戶所需求的應(yīng)用程序。(我們領(lǐng)先的甘特圖控件VARCHART XGantt可用于.NET,ActiveX和ASP.NET應(yīng)用程序。)
點(diǎn)擊下載VARCHART XGantt免費(fèi)版
甘特圖使計(jì)劃人員可以通過(guò)來(lái)回移動(dòng)來(lái)輕松地重新計(jì)劃訂單、任務(wù)或資源。但是,將節(jié)點(diǎn)定位在時(shí)間軸的某個(gè)點(diǎn)或緊接另一個(gè)節(jié)點(diǎn)之后可能會(huì)很棘手,因?yàn)楦侍貓D中的某個(gè)點(diǎn)必須被鼠標(biāo)精確擊中。
此外,在許多甘特圖中,使用了多級(jí)組。在大型計(jì)劃中,如果目標(biāo)組的位置很遠(yuǎn),則用鼠標(biāo)將節(jié)點(diǎn)從一個(gè)組或其子組拖到另一個(gè)組有時(shí),會(huì)帶來(lái)一些不便和混亂。
Snap工具:支持水平拖動(dòng)
許多拖動(dòng)應(yīng)用程序或設(shè)計(jì)工具已經(jīng)提供了所謂的snapgrid,以幫助通過(guò)預(yù)定義的網(wǎng)格(通常以像素間隔)精確定位對(duì)象。 VARCHART XGantt現(xiàn)在提供了類(lèi)似的功能。移動(dòng)的對(duì)象未調(diào)整為固定網(wǎng)格,而是調(diào)整為圖形中的其他對(duì)象,因此這些對(duì)象定義了具有不規(guī)則距離的網(wǎng)格。
節(jié)點(diǎn)(或其層)、日期行、行網(wǎng)格和日歷網(wǎng)格允許定義所謂的snap目標(biāo)。這意味著這些對(duì)象在其自身上定義了某些位置,用作其他對(duì)象的snap動(dòng)作的目標(biāo)。當(dāng)水平移動(dòng)節(jié)點(diǎn)或修改節(jié)點(diǎn)或圖層的大小時(shí),該節(jié)點(diǎn)或圖層的開(kāi)始或結(jié)束日期將按時(shí)間順序調(diào)整為其他對(duì)象定義的snap工具。開(kāi)始日期或結(jié)束日期將朝其附近5像素之內(nèi)的快照目標(biāo)移動(dòng),因此將接管目標(biāo)的確切日期。
已為每個(gè)節(jié)點(diǎn)布局定義了特殊的行為(未分組、分組、分層排列;假定相應(yīng)的對(duì)象定義了snap工具):
所有節(jié)點(diǎn)布局:將要移動(dòng)的層調(diào)整為日期行、行網(wǎng)格和日歷網(wǎng)格。
未分組的布局:將要移動(dòng)的圖層調(diào)整為所有節(jié)點(diǎn)的圖層。
分組布局:將要移動(dòng)的層調(diào)整為一組(沒(méi)有子組)節(jié)點(diǎn)的層。如果在交互過(guò)程中更改了組,則層將被調(diào)整為新組的對(duì)象。
分層排列:將要移動(dòng)的層調(diào)整為同一分支(帶有子分支)的節(jié)點(diǎn)的層。如果在交互過(guò)程中更改了分支,則會(huì)將圖層調(diào)整為新分支的對(duì)象。
為了使snap工具生效,必須在“節(jié)點(diǎn)”屬性頁(yè)面上將其啟用
API調(diào)用:vcGantt.UseSnapTargetsInInteractions = true / false
可以在“編輯圖層”對(duì)話框中將圖層定義為snap目標(biāo)。選中“開(kāi)始snap目標(biāo)”和“結(jié)束snap目標(biāo)”復(fù)選框,將圖層的位置(即日期)設(shè)置為拖動(dòng)節(jié)點(diǎn)或圖層的snap目標(biāo)。
API調(diào)用:
VcLayer.StartSnapTarget = true / false
VcLayer.EndSnapTarget = true / false
日期行可以在“指定日期行”對(duì)話框中定義為snap目標(biāo)。勾選“snap目標(biāo)”復(fù)選框,將日期行的位置(即日期)設(shè)置為捕捉節(jié)點(diǎn)或圖層的snap目標(biāo)。
API調(diào)用:VcDateLine.SnapTarget = true / false
snap目標(biāo)LINE GRIDS / CALENDAR GRIDS
行網(wǎng)格和日歷網(wǎng)格可以在兩個(gè)不同的位置定義為snap目標(biāo):
在“編輯時(shí)間標(biāo)度”部分中,沒(méi)有單獨(dú)的對(duì)象
在單個(gè)、與組或節(jié)點(diǎn)的對(duì)象對(duì)話框下方。
選中“編輯時(shí)間標(biāo)度”部分對(duì)話框中的相應(yīng)復(fù)選框,將相關(guān)對(duì)象的位置(即它們的日期)設(shè)置為拖動(dòng)節(jié)點(diǎn)或圖層的snap目標(biāo)。
在“分組”對(duì)話框中,您可以訪問(wèn)“管理日歷網(wǎng)格”和“管理行網(wǎng)格”對(duì)話框,其中勾選相應(yīng)的復(fù)選框會(huì)將相關(guān)對(duì)象的位置(即它們的日期)設(shè)置為拖動(dòng)節(jié)點(diǎn)或圖層的snap目標(biāo)。
API調(diào)用:
VcDateLineGrid.SnapTarget = true / false
VcCalendarGrid.StartSnapTarget = true / false
VcCalendarGrid.StartSnapTarget = true / false
請(qǐng)注意:由于在移動(dòng)多個(gè)節(jié)點(diǎn)時(shí)混合所有對(duì)象(即來(lái)自多個(gè)功能區(qū)的對(duì)象)的snap目標(biāo)沒(méi)有意義,因此僅在移動(dòng)單個(gè)節(jié)點(diǎn)時(shí)才考慮單個(gè)對(duì)象的snap目標(biāo)。沒(méi)有提供將節(jié)點(diǎn)單獨(dú)snap到其所在的功能區(qū)的snap目標(biāo)上的功能。
通過(guò)箭頭鍵移動(dòng)節(jié)點(diǎn)
節(jié)點(diǎn)不僅可以通過(guò)鼠標(biāo)進(jìn)行交互式移動(dòng),還可以通過(guò)鍵盤(pán)上的鼠標(biāo)鍵進(jìn)行移動(dòng)。為此,需要以下設(shè)置:
vcGantt1.ArrowKeyMode = VcArrowKeyMode.vcResizeOrMoveNode
值vcNodeJumpToSnapTarget已添加到枚舉VcArrowKeyMode。如果設(shè)置了此值,則按CTRL +向左或向右箭頭鍵會(huì)導(dǎo)致標(biāo)記的節(jié)點(diǎn)snap到下一個(gè)或最后一個(gè)snap目標(biāo),這是一個(gè)循環(huán)操作:如果到達(dá)終點(diǎn),則一切都從起點(diǎn)開(kāi)始。
本教程內(nèi)容較長(zhǎng),敬請(qǐng)期待后面半部分內(nèi)容~感興趣的朋友可以點(diǎn)擊下載VARCHART XGantt試用版嘗試一下~
相關(guān)內(nèi)容推薦:
VARCHART XGantt 用戶手冊(cè)系列內(nèi)容>>>
想要購(gòu)買(mǎi)VARCHART XGantt正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊“咨詢?cè)诰€客服”