轉帖|其它|編輯:郝浩|2011-08-18 14:29:24.000|閱讀 704 次
概述:通常情況下,當終端用戶雙擊單元格時,編輯控件將允許用戶在該單元格中輸入內容。在一個單元格中編輯的能力被稱為編輯模式。一些屬性和方法可以用來自定義編輯模式的使用。當一個單元格處于編輯模式時,活動單元格將顯示一個I型光標,如下圖所示。當該單元格不處于編輯模式時,活動單元格將顯示一個焦點長方形。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
通常情況下,當終端用戶雙擊單元格時,編輯控件將允許用戶在該單元格中輸入內容。在一個單元格中編輯的能力被稱為編輯模式。一些屬性和方法可以用來自定義編輯模式的使用。
當一個單元格處于編輯模式時,活動單元格將顯示一個I型光標,如下圖所示。當該單元格不處于編輯模式時,活動單元格將顯示一個焦點長方形,如下圖所示。
![]() |
![]() |
處于編輯模式下的單元格 | 被選中但是并不處于編輯模式下的單元格 |
一個單元格將進入編輯模式(開啟編輯模式),當:
一個單元格離開編輯模式(關閉編輯模式),當
當一個單元格進入編輯模式,默認情況下,光標位于單元格中文本的末端。你可以設置EditModeReplace屬性,將光標改變為選擇單元格中存在的文本。
如果你愿意,你可以使用EditModePermanent屬性指定一個單元格,當該單元格變為活動單元格時一直處于編輯模式。
當一個單元格進入編輯模式時,觸發EditModeOn事件;當一個單元格離開編輯模式時,觸發EditModeOff事件。當編輯控件得到焦點時,你可以使用SuperEditBase.EditModeCursorPosition屬性設置光標在該控件中的位置。
你可以使用StartCellEditing 和 StopCellEditing方法啟動和結束編輯模式。
你可以防止單元格獲得焦點,從而禁止終端用戶點擊該單元格。你可以通過設置單元格的CanFocus屬性控制焦點的設置,這些設置通過鍵盤輸入和鼠標操作進行定義。
聚 焦框向終端用戶顯示了被選中的單元格和活動的單元格。默認情況下,當單元格被選中時,該單元格有一個純色聚焦框,如下圖所示。如果一整列(或者一整行)被 選中,該列的第一個單元格(或者該行的)就會得到焦點,同時該列(或者該行)會被高亮,如圖所示。活動單元格的行頭或者列頭也會有不同的背景色。
![]() |
![]() |
被選中的每一個單元格的聚焦指示器 | 被選中列的聚焦指示器 |
你 可以使用Spread的FocusRenderer屬性(這個屬性使用IFocusIndicatorRenderer接口)自定義活動單元格的聚焦指示 器。對于動畫指示符來說,你需要IAnimatedFocusRenderer接口。你也可以改變活動表頭的選定顏色。
下表總結了聚焦指示器的幾種類型以及與之相對應的類。
類型 | 類 |
默認 | DefaultFocusIndicatorRenderer |
動畫 | AnimatedDefaultFocusIndicatorRenderer |
自定義行 | CustomFocusIndicatorRenderer |
編輯 | EditingFocusIndicatorRenderer |
擴展 | EnhancedFocusIndicatorRenderer |
圖片 | ImageFocusIndicatorRenderer |
跑馬燈線 | MarqueeFocusIndicatorRenderer |
實線 | SolidFocusIndicatorRenderer |
DefaultFocusIndicatorRenderer 是其它類的基類。ImageFocusIndicatorRenderer允許你使用一個圖片作為聚焦指示器。 SolidFocusIndicatorRenderer允許你自定義 一個實心的邊框圍繞著選中單元格作為聚焦指示器。
在Spread設計器中,你可以使用聚焦指示編輯器自定義聚焦指示器。
你 可以獲得行和列的單元格索引信息,這個單元格通過CellClickEventArgs類中的CellClick事件的參數e點擊訪問。你也可以從這個參 數中得到X和Y坐標。你可以實現一個MouseDown事件,并從X和Y坐標中獲取點擊過的單元格的行和列索引信息。根據FpSpread類中的 GetCellFromPixel方法,你可以獲取CellRange類中的目標單元格信息。你也可以從各自的成員中獲取行和列的信息。
你可以獲取單元格中諸如位置,規格等信息,這些信息都是被行索引列索引所指定。當FpSpread類中的GetCellRectangle方法被調用,它會指定目標行或者列索引。單元格坐標信息是以.NET框架的矩形格式返回的。
對 表頭來說,通過訪問CellClickEventArgs類中的CellClick事件參數e,你可以得到已經被點擊的表頭的行和列索引信息。你可以檢測 這些表頭是否被點擊。你也可以從這個參數中獲取x坐標和y坐標。你可以實現一個MouseDown事件,從 X和Y坐標中獲取已經被點擊的表頭單元格的行和列的索引信息。
通過使用FpSpread類中的 GetColumnHeaderCellFromPixel方法,你可以為列單元格獲取CellRange類格式中的目標單元格信息。你可以從各自的成員 中獲取列表頭里的行和列的信息。在有行頭單元格的情況下,調用GetRowHeaderCellFromPixel方法。
你 可以添加一個備注到一個單元格或單元格區域。備注可以包括諸如評論、問題,或者描述單元格值的由來的文本。每一個有備注顯示的單元格在單元格的右上角顯示 了一個單元格備注指示器(默認情況下是一個小的紅色的框)。當指針在有一條備注的單元格的指示符上的時候,備注文本顯示在單元格旁邊的一個文本框中。另外 你可以設置你的單元格備注總是顯示,而不只是當鼠標移向指示符時候顯示。對于彈出的單元格備注而言,它們的顯示方式類似于文本提示。當指針在單元格的備注 指示器上時,就會顯示單元格備注文本。這一點在下面圖中有所展現。
在單元格的右上角的紅色方塊表示該單元格的一個可用備注,如下圖所示。你可以使用CellNoteIndicatorVisible屬性隱藏單元格備注指示器當指針在單元格備注上時,可以使用單元格的NoteIndicatorPosition屬性設置備注的位置。
自定義單元格備注行為
你可以允許備注保持顯示的狀態,就好像它們是即時貼一樣。在這種情況下,他們出現在一個單元格旁邊的矩形框中,以一條可伸縮的線與要說明的單元格相連,以便備注可以被用戶方便地移動。一個被選中的即時貼的示例如下圖所示。這個單元格的NoteStyle屬性必須使用 StickyNote枚舉類型以便允許此操作。即時貼在這種情況下是一個可移動的圖形。
為了移動備注,當指針在備注上時,單擊鼠標左鍵 選擇它,將它拖曳到目標位置,并且釋放鼠標左鍵以將其置于正確位置。單元格備注指示器上的即時貼延伸出的線可以適應備注的任何位置。
你可以允許用戶編輯單元格備注,如果備注始終顯示。為了讓用戶對其進行編輯,設置表單中的AllowNoteEdit屬性,這樣的設置使得該表中的所有即時貼備注都是可以由用戶編輯的。
對于終端用戶來說,單元格備注可以用來保存一些額外信息。你還可以允許用戶在單元格中附加他們自己的信息,該信息可以是任何對終端用戶有用的信息。例如終端用戶可能會利用單元格備注來說明單元格值的來源(單元備注=“這個值來源于消費者報告七月號雜志的一篇文章”)。
你可以進一步自定義備注的使用:
還有可用于自定義單元格備注外觀的其他類 。給備注使用StickyNoteStyleInfo 類。
了解局限性
有一些單元格備注使用和顯示的限制:
自定義單元格備注指示器
你 可以改變單元格備注指示器的大小和顏色。單元格備注指示器的默認大小是一個3x3的正方形,但是 你可以修改NoteIndicator的寬度或高度為任何 正整數。單元格備注指示器的默認顏色 是紅色的,但你可以給它分配任何顏色值。下圖中顯示了 使用默認值的指示器和使用自定義值的自定義指示器。使用NoteIndicatorColor 和NoteIndicatorSize屬性,你可以設置自定義值。
這段示例代碼為單元格區域設置了可編輯的單元格備注,并設置單元格備注指示器的顏色為綠色(而不是默認的紅色)。
fpSpread1.Sheets[0].AllowNoteEdit = true; |
fpSpread1.Sheets[0].Cells[1, 1, 3, 3].Note = "test"; |
fpSpread1.Sheets[0].Cells[1, 1, 3, 3].NoteIndicatorColor = Color.Green; |
fpSpread1.Sheets[0].Cells[1, 1, 3, 3].NoteStyle = FarPoint.Win.Spread.NoteStyle.StickyNote; |
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園