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