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