單元格的編輯模式通常情況下,當(dāng)終端用戶雙擊單元格時(shí),編輯控件將允許用戶在該單元格中輸入內(nèi)容。在一個(gè)單元格中編輯的能力被稱(chēng)為編輯模式。一些屬性和方法可以用來(lái)自定義編輯模式的使用。 當(dāng)一個(gè)單元格處于編輯模式時(shí),活動(dòng)單元格將顯示一個(gè)I型光標(biāo),如下圖所示。當(dāng)該單元格不處于編輯模式時(shí),活動(dòng)單元格將顯示一個(gè)焦點(diǎn)長(zhǎng)方形,如下圖所示。
一個(gè)單元格將進(jìn)入編輯模式(開(kāi)啟編輯模式),當(dāng): 用戶在單元格中輸入內(nèi)容 用戶雙擊單元格 EditMode屬性設(shè)置為true 一個(gè)單元格離開(kāi)編輯模式(關(guān)閉編輯模式),當(dāng) 用戶按下回車(chē)鍵 用戶激活了另外一個(gè)單元格 應(yīng)用程序丟失焦點(diǎn) EditMode屬性設(shè)置為false 當(dāng)一個(gè)單元格進(jìn)入編輯模式,默認(rèn)情況下,光標(biāo)位于單元格中文本的末端。你可以設(shè)置EditModeReplace屬性, 將光標(biāo)改變?yōu)檫x擇單元格中存在的文本。 如果你愿意,你可以使用EditModePermanent屬性指定一個(gè)單元格, 當(dāng)該單元格變?yōu)榛顒?dòng)單元格時(shí)一直處于編輯模式。 你可以使用StartCellEditing 和 StopCellEditing方法啟動(dòng)和結(jié)束編輯模式。 鎖定單元格你可以鎖定一個(gè)單元格或者一個(gè)區(qū)域內(nèi)的單元格,并使之不能被終端用戶編輯。 你也可以將鎖定單元格的外觀設(shè)置為其他樣式,以便于用戶分辨。 你可以使用單元格對(duì)象,列對(duì)象,行對(duì)象,或者交替行對(duì)象中的Locked 屬性鎖定單元格。你還可以為StyleInfo對(duì)象設(shè)置Locked屬性,并將該風(fēng)格應(yīng)用到你希望鎖定的單元格上。你還需要設(shè)置SheetView對(duì)象的 Protect屬性鎖定單元格。 Locked屬性將鎖定的單元格標(biāo)識(shí)出來(lái),設(shè)置Protect屬性可以確定是否鎖定這些單元格。對(duì)于標(biāo)記為鎖定的單元格,要鎖定用戶的輸入,表單的 Protect屬性必須設(shè)置為T(mén)rue(默認(rèn)情況下為T(mén)rue),否則用戶依然可以與單元格進(jìn)行交互。 另外一種鎖定單元格的方法是將單元格類(lèi)型設(shè)置為文本單元格(使用TextCellType)并且將屬性設(shè)置為只讀(ReadOnly)。 這樣,單元格就不可以編輯了。 確定表單的Protect屬性被設(shè)置為T(mén)rue后,你可以鎖定一些列的單元格并在某一行中解鎖這些單元格。 示例代碼如下: 單元格的合并你可以將若干個(gè)單元格合并起來(lái),創(chuàng)建一個(gè)合并區(qū)域,如下圖所示。合并單元格用于創(chuàng)建一個(gè)大型的單元格,位于以前幾個(gè)分列的單元格之上。舉例來(lái)說(shuō),如果你創(chuàng)建了從B2到D3的單元格的合并區(qū)域,大型的單元格就占據(jù)了單元格B2至D3的空間。 控件分為四個(gè)部分:表角,列標(biāo)題,行標(biāo)題,以及數(shù)據(jù)區(qū)域。你可以在某一部分創(chuàng)建若干個(gè)合并區(qū)域,但是你不能創(chuàng)建橫跨好幾部分的區(qū)域。 舉例來(lái)說(shuō),你不能將數(shù)據(jù)區(qū)域的單元格與行標(biāo)題的單元格合并,并且你不能將列標(biāo)題的單元格與表角的單元格合并。這里主要介紹在數(shù)據(jù)區(qū)域如何合并單元格。 當(dāng)你創(chuàng)建單元格的合并區(qū)域時(shí)。合并區(qū)域的第一個(gè)單元格的數(shù)據(jù)(通常被稱(chēng)為錨點(diǎn)單元格)占據(jù)了合并區(qū)域的所有空白區(qū)。當(dāng)你創(chuàng)建一個(gè)合并區(qū)域時(shí),原來(lái)在各個(gè)單元格的數(shù)據(jù)依舊在合并區(qū)域的各個(gè)單元格中,但是不會(huì)顯示出來(lái)。 合并區(qū)域僅僅是將數(shù)據(jù)隱藏了。 如果你將這一組單元格的合并區(qū)域移除,合并區(qū)域單元格的內(nèi)容,先前被隱藏的內(nèi)容,就會(huì)正常顯示。通過(guò)調(diào)用AddSpanCell 方法,你可以創(chuàng)建一個(gè)單元格的合并區(qū)域。合并區(qū)域內(nèi)的單元格種類(lèi)不會(huì)發(fā)生改變。合并的單元格采用合并區(qū)域中最左邊的單元格類(lèi)型。 調(diào)用GetCellSpan方法返回一個(gè)單元格是否在合并區(qū)域中的判定值。并且如果此單元格在合并區(qū)域中,該方法就會(huì)返回CellRange對(duì)象,該對(duì)象包含錨點(diǎn)單元格的行數(shù)和列數(shù), 以及合并區(qū)域中的行列數(shù)。 通過(guò)調(diào)用RemoveSpanCell方法你可以將合并區(qū)域從一組單元格區(qū)域中移除。你可以通過(guò)此方法移除單元格合并區(qū)域,指定合并區(qū)域的錨點(diǎn)單元格,以便移除合并區(qū)域。當(dāng)你想要移除一個(gè)合并區(qū)域時(shí),以前顯示在各個(gè)單元格中的數(shù)據(jù)又重新顯示在你的眼前。單元格的數(shù)據(jù)從未沒(méi)移除,只是被合并區(qū)域隱藏而已。 下面的示例代碼定義了一些內(nèi)容然后合并了六個(gè)相連的單元格。
使用拖拽操作填充單元格在使用Spread進(jìn)行應(yīng)用程序開(kāi)發(fā)時(shí),你可以允許最終用戶從一個(gè)或若干個(gè)單元格的區(qū)域內(nèi)拖拽數(shù)據(jù)到另外一個(gè)單元格或者另外一組單元格內(nèi)。對(duì)于選中的單元格或一組單元格 ,你也可以將其他的單元格填充到一行 (或者若干行如果超過(guò)一列被選中)或者一列(或者若干列如果超過(guò)一行被選中)。 這里顯示的示例從原始選中的單元格中向一列中填充了幾個(gè)單元格。 使用FillDirection枚舉類(lèi)型,你可以自定義填充的方向。 下面的示例代碼對(duì)控件進(jìn)行了設(shè)置以便允許拖拽填充特性。
附:Spread for Windows Forms快速入門(mén)系列文章 Spread for Windows Forms快速入門(mén)(1)---開(kāi)始使用Spread Spread for Windows Forms快速入門(mén)(2)---設(shè)置Spread表單 Spread for Windows Forms快速入門(mén)(3)---行列操作 Spread for Windows Forms快速入門(mén)(4)---常用的單元格類(lèi)型(上) Spread for Windows Forms快速入門(mén)(5)---常用的單元格類(lèi)型(下) |
|
|