原創|其它|編輯:郝浩|2011-08-09 14:48:51.000|閱讀 565 次
概述:通常情況下,當終端用戶雙擊單元格時,編輯控件將允許用戶在該單元格中輸入內容。在一個單元格中編輯的能力被稱為編輯模式。一些屬性和方法可以用來自定義編輯模式的使用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
單元格的編輯模式
通常情況下,當終端用戶雙擊單元格時,編輯控件將允許用戶在該單元格中輸入內容。在一個單元格中編輯的能力被稱為編輯模式。一些屬性和方法可以用來自定義編輯模式的使用。
當一個單元格處于編輯模式時,活動單元格將顯示一個I型光標,如下圖所示。當該單元格不處于編輯模式時,活動單元格將顯示一個焦點長方形,如下圖所示。
![]() |
![]() |
處于編輯模式下的單元格 | 被選中但是并不處于編輯模式下的單元格 |
一個單元格將進入編輯模式(開啟編輯模式),當:
用戶在單元格中輸入內容
用戶雙擊單元格
EditMode屬性設置為true
一個單元格離開編輯模式(關閉編輯模式),當
用戶按下回車鍵
用戶激活了另外一個單元格
應用程序丟失焦點
EditMode屬性設置為false
當一個單元格進入編輯模式,默認情況下,光標位于單元格中文本的末端。你可以設置EditModeReplace屬性, 將光標改變為選擇單元格中存在的文本。
如果你愿意,你可以使用EditModePermanent屬性指定一個單元格, 當該單元格變為活動單元格時一直處于編輯模式。
你可以使用StartCellEditing 和 StopCellEditing方法啟動和結束編輯模式。
鎖定單元格
你可以鎖定一個單元格或者一個區域內的單元格,并使之不能被終端用戶編輯。 你也可以將鎖定單元格的外觀設置為其他樣式,以便于用戶分辨。
你 可以使用單元格對象,列對象,行對象,或者交替行對象中的Locked 屬性鎖定單元格。你還可以為StyleInfo對象設置Locked屬性,并將該風格應用到你希望鎖定的單元格上。你還需要設置SheetView對象的 Protect屬性鎖定單元格。 Locked屬性將鎖定的單元格標識出來,設置Protect屬性可以確定是否鎖定這些單元格。對于標記為鎖定的單元格,要鎖定用戶的輸入,表單的 Protect屬性必須設置為True(默認情況下為True),否則用戶依然可以與單元格進行交互。
另外一種鎖定單元格的方法是將單元格類型設置為文本單元格(使用TextCellType)并且將屬性設置為只讀(ReadOnly)。 這樣,單元格就不可以編輯了。
確定表單的Protect屬性被設置為True后,你可以鎖定一些列的單元格并在某一行中解鎖這些單元格。 示例代碼如下:
fpSpread1.ActiveSheet.Protect = true;
fpSpread1.ActiveSheet.LockBackColor = Color.LightCyan; fpSpread1.ActiveSheet.LockForeColor = Color.Green; fpSpread1.ActiveSheet.Columns[0, 3].Locked = true; fpSpread1.ActiveSheet.Cells[1,1,1,2].Locked = false; |
單元格的合并
你可以將若干個單元格合并起來,創建一個合并區域,如下圖所示。合并單元格用于創建一個大型的單元格,位于以前幾個分列的單元格之上。舉例來說,如果你創建了從B2到D3的單元格的合并區域,大型的單元格就占據了單元格B2至D3的空間。
控 件分為四個部分:表角,列標題,行標題,以及數據區域。你可以在某一部分創建若干個合并區域,但是你不能創建橫跨好幾部分的區域。 舉例來說,你不能將數據區域的單元格與行標題的單元格合并,并且你不能將列標題的單元格與表角的單元格合并。這里主要介紹在數據區域如何合并單元格。
當 你創建單元格的合并區域時。合并區域的第一個單元格的數據(通常被稱為錨點單元格)占據了合并區域的所有空白區。當你創建一個合并區域時,原來在各個單元 格的數據依舊在合并區域的各個單元格中,但是不會顯示出來。 合并區域僅僅是將數據隱藏了。 如果你將這一組單元格的合并區域移除,合并區域單元格的內容,先前被隱藏的內容,就會正常顯示。通過調用AddSpanCell 方法,你可以創建一個單元格的合并區域。合并區域內的單元格種類不會發生改變。合并的單元格采用合并區域中最左邊的單元格類型。
調用GetCellSpan方法返回一個單元格是否在合并區域中的判定值。并且如果此單元格在合并區域中,該方法就會返回CellRange對象,該對象包含錨點單元格的行數和列數, 以及合并區域中的行列數。
通 過調用RemoveSpanCell方法你可以將合并區域從一組單元格區域中移除。你可以通過此方法移除單元格合并區域,指定合并區域的錨點單元格,以便 移除合并區域。當你想要移除一個合并區域時,以前顯示在各個單元格中的數據又重新顯示在你的眼前。單元格的數據從未沒移除,只是被合并區域隱藏而已。
下面的示例代碼定義了一些內容然后合并了六個相連的單元格。
// Create some content in two cells.
fpSpread1.ActiveSheet.Cells[1,1].Text = "These six cells are spanned."; fpSpread1.ActiveSheet.Cells[2,2].Text = "This is text in 2,2."; // Span six cells including the ones with different content. fpSpread1.ActiveSheet.AddSpanCell(1, 1, 2, 3); |
使用拖拽操作填充單元格
在 使用Spread進行應用程序開發時,你可以允許最終用戶從一個或若干個單元格的區域內拖拽數據到另外一個單元格或者另外一組單元格內。對于選中的單元格 或一組單元格 ,你也可以將其他的單元格填充到一行 (或者若干行如果超過一列被選中)或者一列(或者若干列如果超過一行被選中)。
這里顯示的示例從原始選中的單元格中向一列中填充了幾個單元格。
使用FillDirection枚舉類型,你可以自定義填充的方向。
下面的示例代碼對控件進行了設置以便允許拖拽填充特性。
fpSpread1.AllowDragFill = true; |
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園