|   
 在上一篇,我們介紹了常用了文本類型單元格。除了文本型單元格外,Spread還支持如下13種圖形單元格類型:組合框單元格、按鈕單元格、復(fù)選框單元格、超鏈接單元格、進(jìn)度條單元格、條碼單元格、顏色選擇器單元格、圖片單元、列表框單元格、復(fù)合列組合框單元格、復(fù)合選項(xiàng)單元格、富文本單元格、滾動(dòng)條單元格等。下面我們介紹前五種的基本用法。 
 組合框單元格ComboBoxCellType
 你可以使用一個(gè)組合框單元格以顯示一個(gè)可編輯的下拉列表,用戶通過(guò)在顯示的列表中進(jìn)行選擇完成對(duì)值的輸入。你可以指定項(xiàng)目的列表是否包括顯示伴隨文字的圖標(biāo),同時(shí)也可以指定在任何時(shí)候都顯示的數(shù)字,以及單元格是否對(duì)用戶來(lái)說(shuō)是可編輯的。 
 
 
 
 
 僅文本 
 | 
 
 文本以及圖標(biāo) 
 | 
 
 
 
 ![clip_image002[4] clip_image002[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_1.jpg)
 
 | 
 
 ![clip_image004[4] clip_image004[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_2.jpg)
 
 | 
 
 
 
 自定義列表外觀
 這里總結(jié)了你可以自定義組合框外觀的若干屬性。 
 
 
 
 
 屬性 
 | 
 
 描述 
 | 
 
 
 
 BackgroundImage 
 | 
 
 這個(gè)屬性可以讓你設(shè)置一張圖,用于顯示組合框的可編輯部分的 背景。 
 | 
 
 
 
 ButtonAlign 
 | 
 
 這個(gè)屬性可以讓你設(shè)定按鈕的顯示位置。 
 | 
 
 
 
 ImageList 
 | 
 
 這個(gè)屬性可以使你設(shè)置組合框中下拉菜單里面的文本旁邊顯示的圖標(biāo)。 
 | 
 
 
 
 ItemData 
 | 
 
 這個(gè)屬性可以使你為組合框的下拉菜單設(shè)置項(xiàng)目的數(shù)據(jù),此數(shù)據(jù)與顯示的項(xiàng)目不同。 
 | 
 
 
 
 Items 
 | 
 
 這個(gè)屬性可以讓你為組合框的下拉菜單設(shè)置項(xiàng)目。 
 | 
 
 
 
 ListAlignment 
 | 
 
 這個(gè)屬性可以讓你設(shè)置設(shè)置列表對(duì)齊到單元格上的哪一邊。 
 | 
 
 
 
 ListOffset 
 | 
 
 這個(gè)屬性可以讓你設(shè)置從單元格的對(duì)齊邊開(kāi)始計(jì)算 列表有多少像素的偏移。 
 | 
 
 
 
 ListWidth 
 | 
 
 這個(gè)屬性可以讓你設(shè)置下拉列表的寬度(以像素計(jì)算)。 
 | 
 
 
 
 MaxDrop 
 | 
 
 這個(gè)屬性可以讓你設(shè)置在列表中每次最多顯示的項(xiàng)目數(shù)。如果 有更多的項(xiàng)目要顯示,列表框就會(huì)顯示垂直滾動(dòng)條。 
 | 
 
 
 
 MaxLength 
 | 
 
 這個(gè)屬性可以讓你設(shè)置在組合框中允許顯示的最大字符數(shù)。 
 | 
 
 
 
 自定義列表的操作
 這里有一個(gè)操作屬性的集合,你可以通過(guò)他們自定義組合框。 
 
 
 
 
 屬性 
 | 
 
 描述 
 | 
 
 
 
 AcceptsArrowKeys 
 | 
 
 設(shè)置組合框控件如何處理方向鍵。 
 | 
 
 
 
 AutoSearch 
 | 
 
 設(shè)置組合框中如何根據(jù)輸入的一個(gè)關(guān)鍵字符來(lái)搜索列表的項(xiàng)目。 
 | 
 
 
 
 CharacterCasing 
 | 
 
 設(shè)置文本單元格中的大小寫(xiě)。 
 | 
 
 
 
 CharacterSet 
 | 
 
 設(shè)置文本單元格中所允許使用的字符。 
 | 
 
 
 
 Editable 
 | 
 
 設(shè)置你是否可以在組合框中的可編輯區(qū)域鍵入數(shù)據(jù)。 
 | 
 
 
 
 EditorValue 
 | 
 
 設(shè)置向底層的數(shù)據(jù)模型寫(xiě)入的值。 
 | 
 
 
 
 ListControl 
 | 
 
 如果你不想使用Spread內(nèi)置的列表控件 ,可以設(shè)置組合框控件中的列表部分來(lái)代替。 
 | 
 
 
 
 Spread控件中包括為按鈕單元格和組合框單元格提供了一個(gè)ButtonDrawMode屬性。這個(gè)屬性授權(quán)你在當(dāng)前列,行,或單元格中一直顯示一個(gè)或若干個(gè)按鈕。 
 下面的代碼示例創(chuàng)建了一個(gè)組合框單元格,列出了1到6月的英文名,并允許用戶輸入其他值: 
 
 
 
 
 FarPoint.Win.Spread.CellType.ComboBoxCellType cmbocell = new FarPoint.Win.Spread.CellType.ComboBoxCellType(); 
 cmbocell.Items = (new String[] {"January", "February", "March", "April", "May", "June"}); 
 cmbocell.AutoSearch = FarPoint.Win.AutoSearch.SingleCharacter; 
 cmbocell.Editable = true; 
 cmbocell.MaxDrop = 4; 
 fpSpread1.ActiveSheet.Cells[0, 0].CellType = cmbocell; 
 | 
 
 
 
 按鈕單元格ButtonCellType
 你可以使用按鈕單元格在單元格中的顯示一個(gè)按鈕。按鈕單元格缺省顯示成一個(gè)默認(rèn)顏色的矩形的按鈕。你可以自定義文本,顏色以及按鈕圖樣并且指定點(diǎn)擊時(shí)觸發(fā)的某個(gè)行為。 
 ![clip_image006[4] clip_image006[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_3.jpg)
 
 自定義按鈕外觀
 按鈕可顯示文本、圖片、或者都顯示。如果他們顯示圖片,你可以選擇當(dāng)按鈕按下顯示另外的一張圖片。你可以自定義按鈕單元格的顏色,包括邊框顏色,文本顏色以及背景顏色。另外,按鈕單元格可以顯示三維的外觀,并且你可以自定義高亮和陰影的顏色。 
 
 
 
 
 屬性 
 | 
 
 描述 
 | 
 
 
 
 BackgroundStyle 
 | 
 
 設(shè)置背景如何被渲染。 
 | 
 
 
 
 ButtonColor 
 | 
 
 設(shè)置按鈕的顏色。 
 | 
 
 
 
 ButtonColor2 
 | 
 
 當(dāng)繪制一個(gè)漸變色的按鈕時(shí),設(shè)置輔助顏色的使用。 
 | 
 
 
 
 DarkColor 
 | 
 
 設(shè)置按鈕底部和右端的邊界的顏色(也就是顯示出三維按鈕中的明亮部分的顏色)。 
 | 
 
 
 
 GradientMode 
 | 
 
 設(shè)定斜度按鈕的繪制風(fēng)格。 
 | 
 
 
 
 LightColor 
 | 
 
 設(shè)置按鈕頂部和左端的邊界的顏色(也就是顯示出三維按鈕中的陰影部分的顏色)。 
 | 
 
 
 
 Picture 
 | 
 
 設(shè)置一幅圖作為按鈕的整體外觀。任何GDI+位圖都可以使用,比如BMP,GIF或者 JPG文件。如果你使用有兩種狀態(tài)的按鈕,這就顯示為一個(gè)未按下的狀態(tài)。 
 | 
 
 
 
 PictureDown 
 | 
 
 為已經(jīng)按下的按鈕設(shè)置一副圖。 
 | 
 
 
 
 ShadowSize 
 | 
 
 設(shè)置陰影的厚度,陰暗面和陽(yáng)面的顏色(以顯示出他的三維效果)。 
 | 
 
 
 
 TwoState 
 | 
 
 設(shè)置按鈕函數(shù)是否顯示為一個(gè)有兩種狀態(tài)的撥動(dòng)開(kāi)關(guān)。每次你點(diǎn)擊按鈕,按鈕就會(huì)更改狀態(tài)。 
 | 
 
 
 
 ![clip_image008[4] clip_image008[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_4.jpg)
 
 默認(rèn)情況下,按鈕僅有一個(gè)狀態(tài),當(dāng)且僅當(dāng)指針按下時(shí)才會(huì)改變外觀。你可以將按鈕設(shè)置為兩種狀態(tài)的按鈕,并且當(dāng)按鈕被點(diǎn)擊時(shí),會(huì)在兩種狀態(tài)之間切換。當(dāng)用戶點(diǎn)擊該單元格的任意一點(diǎn)時(shí),按鈕就被觸發(fā)。默認(rèn)情況下,按鈕的行為類似于開(kāi)關(guān)按鈕,這樣你可以點(diǎn)擊鼠標(biāo)左鍵,并且當(dāng)你松開(kāi)鼠標(biāo)時(shí),按鈕就會(huì)彈起。如果你愿意,按鈕單元格會(huì)像切換按鈕或者有兩種狀態(tài)的按鈕一樣,當(dāng)你使用鼠標(biāo)左鍵點(diǎn)擊的時(shí)候按鈕會(huì)保持按下?tīng)顟B(tài)。按鈕為“否”當(dāng)他們沒(méi)有被按下時(shí), 為“真”當(dāng)他們被按下時(shí)。 
 自定義文本外觀
 你可以指定按鈕單元格中顯示的文本并且你可以指定文本的外觀。你可以指定按鈕單元格中圖片旁邊的文字對(duì)齊方式以及是否對(duì)多行文字進(jìn)行換行操作。 
 
 
 
 
 屬性 
 | 
 
 描述 
 | 
 
 
 
 HotkeyPrefix 
 | 
 
 設(shè)置是否顯示下劃線以便顯示快捷鍵(或者熱鍵)。 
 ![clip_image010[4] clip_image010[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_5.jpg)
 
 | 
 
 
 
 Text 
 | 
 
 設(shè)置顯示在按鈕上的文本。 
 | 
 
 
 
 TextAlign 
 | 
 
 相對(duì)于一張圖片設(shè)置文本的對(duì)齊方式。 
 | 
 
 
 
 TextColor 
 | 
 
 設(shè)置按鈕中的文本顏色。 
 | 
 
 
 
 TextDown 
 | 
 
 如果按鈕是有兩個(gè)狀態(tài)的按鈕,當(dāng)它被按下時(shí),設(shè)置按鈕的顯示的文本。 
 | 
 
 
 
 TextOrientation 
 | 
 
 設(shè)置按鈕上文本的方向。 請(qǐng)看下表顯示了有關(guān)于文字方向的各種示例。 
 | 
 
 
 
 WordWrap 
 | 
 
 設(shè)置是否對(duì)文本進(jìn)行自動(dòng)換行操作。 
 | 
 
 
 
 除了按鈕單元格本身的屬性之外,你也可以通過(guò)設(shè)定FpSpread類的屬性影響按鈕行為。 FpSpread類有一個(gè)針對(duì)于按鈕單元格以及組合框單元格的ButtonDrawMode屬性。這個(gè)屬性允許你總是顯示一個(gè)按鈕或者在當(dāng)前這一列,這一行,或者這一個(gè)單元格中的若干個(gè)按鈕。 
 在下面的示例中,創(chuàng)建一個(gè)藍(lán)色的帶文本的按鈕。當(dāng)指針被按下時(shí),可以定義不同的顯示文本。這個(gè)實(shí)例按鈕顯示在這個(gè)主題的開(kāi)頭部分。 
 
 
 
 
 FarPoint.Win.Spread.CellType.ButtonCellType bttncell = new FarPoint.Win.Spread.CellType.ButtonCellType(); 
 bttncell.ButtonColor = Color.Cyan; 
 bttncell.DarkColor = Color.DarkCyan; 
 bttncell.LightColor = Color.AliceBlue; 
 bttncell.TwoState = false; 
 bttncell.Text = "Click and Hold"; 
 bttncell.TextDown = "...now let go."; 
 bttncell.ShadowSize = 3; 
 fpSpread1.Sheets[0].Cells[0,2].CellType = bttncell; 
 | 
 
 
 
 復(fù)選框單元格CheckBoxCellType
 你可以使用復(fù)選框單元格以便在單元格中顯示一個(gè)復(fù)選框,一個(gè)復(fù)選框默認(rèn)地顯示一個(gè)小型的復(fù)選框,此復(fù)選框選有三個(gè)狀態(tài)中的一個(gè),三個(gè)狀態(tài)包括已選,未選,或者置灰。你可以通過(guò)設(shè)置文本自定義復(fù)選框,以決定復(fù)選框的操作,與此同時(shí)可以設(shè)置圖片替換標(biāo)準(zhǔn)的復(fù)選框圖片 
 自定義文本
 你可以通過(guò)為每一個(gè)狀態(tài)指定圖片自定義復(fù)選框。默認(rèn)情況下,復(fù)選框僅有兩個(gè)狀態(tài),已選和未選,所以想要使用所有的三個(gè)狀態(tài),你必須使用ThreeState屬性。默認(rèn)的外觀使用TextTrue,TextFalse和TextIndeterminate屬性以顯示預(yù)定義的文本。點(diǎn)擊單元格的任何一個(gè)地方以改變復(fù)選框的狀態(tài)。 
 ![clip_image012[4] clip_image012[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_6.jpg)
 
 
 
 
 
 屬性 
 | 
 
 描述 
 | 
 
 
 
 Caption 
 | 
 
 無(wú)視其狀態(tài),重載TextTrue,TextFalse,以及TextIndeterminate文本設(shè)置以便設(shè)置復(fù)選框中的文本。 
 | 
 
 
 
 HotkeyPrefix 
 | 
 
 設(shè)置ampersand符號(hào)是否顯示以及如何在文本中顯示下劃線快捷鍵。 
 | 
 
 
 
 TextAlign 
 | 
 
 設(shè)置單元格中的文本如何根據(jù)復(fù)選框圖形進(jìn)行對(duì)齊。 
 | 
 
 
 
 TextFalse 
 | 
 
 對(duì)復(fù)選框中的未選狀態(tài)設(shè)置文本。 
 | 
 
 
 
 TextIndeterminate 
 | 
 
 對(duì)復(fù)選框中的不確定狀態(tài)設(shè)置文本。 
 | 
 
 
 
 TextTrue 
 | 
 
 對(duì)復(fù)選框中的已選狀態(tài)設(shè)置文本。 
 | 
 
 
 
 自定義圖片
 在每個(gè)狀態(tài)中,你也可以對(duì)每個(gè)復(fù)選框的狀態(tài)設(shè)置自定義的圖片(使其看上去更像一個(gè)按鈕)。你可以根據(jù)單元格有焦點(diǎn)(普通)或者沒(méi)有焦點(diǎn)(不可用),或者是否被點(diǎn)擊(按下)來(lái)決定復(fù)選框的外觀。 
 
 
 
 
 屬性 
 | 
 
 描述 
 | 
 
 
 
 BackgroundImage 
 | 
 
 設(shè)置這個(gè)單元格的背景圖片。 
 | 
 
 
 
 Picture 
 | 
 
 設(shè)置用于復(fù)選框狀態(tài)的圖片。 
 | 
 
 
 
 ThreeState 
 | 
 
 設(shè)置復(fù)選框是否有三種狀態(tài)。 
 | 
 
 
 
 下面的示例代碼創(chuàng)建一個(gè)三種狀態(tài)的復(fù)選框單元格: 
 
 
 
 
 FarPoint.Win.Spread.CellType.CheckBoxCellType ckbxcell = new FarPoint.Win.Spread.CellType.CheckBoxCellType(); 
 ckbxcell.ThreeState = true; 
 ckbxcell.TextTrue ="選中"; 
 ckbxcell.TextFalse ="未選"; 
 ckbxcell.TextIndeterminate ="不確定"; 
 fpSpread1.ActiveSheet.Cells[0, 0].CellType = ckbxcell; 
 | 
 
 
 
 超鏈接單元格HyperLinkCellType
 你可以使用一個(gè)超鏈接單元格,它包括作為單一的 超鏈接或者復(fù)合的超鏈接的功能的文本。超鏈接的目標(biāo)可以是一個(gè)統(tǒng)一資源定位符(即URL)。例如: 
 http://www. 
 mailto:tool-sales.cn@grapecity.com?Subject=Spread價(jià)格咨詢 
 你可以指定有多少個(gè)文本成為超鏈接并且其余的顯示為普通文本。你可以自定義超鏈接文本的外觀,以及自定義已經(jīng)被訪問(wèn)(點(diǎn)擊)的鏈接的顏色。 
 
 
 
 
 屬性 
 | 
 
 自定義操作 
 | 
 
 
 
 BackgroundImage 
 | 
 
 設(shè)置背景圖片。 
 | 
 
 
 
 Link 
 | 
 
 設(shè)置目標(biāo)的URL。 
 | 
 
 
 
 LinkArea 
 | 
 
 設(shè)置超鏈接的文本的區(qū)域。 
 | 
 
 
 
 LinkColor 
 | 
 
 設(shè)置鏈接的顏色(在他們被訪問(wèn)或者被點(diǎn)擊之前)。 
 | 
 
 
 
 Links 
 | 
 
 設(shè)置超鏈接。 
 | 
 
 
 
 Text 
 | 
 
 設(shè)置超鏈接的標(biāo)簽,此標(biāo)簽顯示在單元格中。 
 | 
 
 
 
 VisitedLinkColor 
 | 
 
 設(shè)置訪問(wèn)過(guò)的(點(diǎn)擊過(guò)的)鏈接的顏色。 
 | 
 
 
 
 下面的示例設(shè)置了單元格的大?。ㄍㄟ^(guò)設(shè)置列寬和行高),以便于圖片適應(yīng)它,定義圖片的位置使其成為超鏈接按鈕, 以及指定目標(biāo)的URL。 
 
 
 
 
 fpSpread1.ActiveSheet.Columns[1].Width = 145; 
 fpSpread1.ActiveSheet.Rows[1].Height = 45; 
 FarPoint.Win.Spread.CellType.HyperLinkCellType hlnkcell = new FarPoint.Win.Spread.CellType.HyperLinkCellType(); 
 hlnkcell.Text = "點(diǎn)擊訪問(wèn)我們的產(chǎn)品網(wǎng)站"; 
 hlnkcell.Link ="http://www."; 
 hlnkcell.LinkArea = new LinkArea(4,7); 
 hlnkcell.LinkColor = Color.DarkGreen; 
 hlnkcell.VisitedLinkColor = Color.Chartreuse; 
 fpSpread1.ActiveSheet.Cells[1, 1].CellType = hlnkcell; 
 | 
 
 
 
 進(jìn)度條單元格ProgressCellType
 一個(gè)進(jìn)度指示器顯示了一個(gè)跨越了整個(gè)單元格的進(jìn)度顯示器。你可以指定填充的顏色,顯示的文本,顯示文本的顏色及其他屬性。  
 ![clip_image014[4] clip_image014[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_7.jpg)
 
 你可以使用純色填充指示器,默認(rèn)情況下,只會(huì)單獨(dú)顯示指示器,如下圖所示。 
 ![clip_image016[4] clip_image016[4]](http://image85.360doc.com/DownloadImg/2015/05/3018/54188636_8.jpg)
 
 你可以通過(guò)設(shè)置以下的屬性自定義單元格中的進(jìn)度指示器的顯示與操作,比如設(shè)置不同的文本,顯示不同的背景圖,定制不同的進(jìn)度條顏色,甚至指定從一種顏色漸變到另一種顏色 
 
 
 
 
 屬性 
 | 
 
 自定義操作 
 | 
 
 
 
 BackgroundImage 
 | 
 
 設(shè)置這個(gè)單元格的背景圖片。 
 | 
 
 
 
 FillColor 
 | 
 
 設(shè)置進(jìn)度指示器填充部分的顏色。 
 | 
 
 
 
 FillColor2 
 | 
 
 設(shè)置進(jìn)度指示器漸變部分填充的第二種顏色。 
 | 
 
 
 
 FillTextColor 
 | 
 
 設(shè)置指示器的填充部分的文本顏色。 
 | 
 
 
 
 GradientMode 
 | 
 
 設(shè)置一個(gè)漸變樣式進(jìn)度指示器的漸變模式。 
 | 
 
 
 
 Maximum 
 | 
 
 設(shè)置用戶可以輸入的最大值。 
 | 
 
 
 
 Minimum 
 | 
 
 設(shè)置用戶可以輸入的最小值。 
 | 
 
 
 
 Orientation 
 | 
 
 設(shè)置進(jìn)度條的方向。 
 | 
 
 
 
 Picture 
 | 
 
 當(dāng)圖片使用該樣式時(shí),設(shè)置用于進(jìn)度的圖片。 
 | 
 
 
 
 ShowText 
 | 
 
 設(shè)置是否顯示百分比的填充的字符串。 
 | 
 
 
 
 Style 
 | 
 
 設(shè)置該進(jìn)度條(或者幾個(gè)進(jìn)度條)的樣式。 
 | 
 
 
 
 Text 
 | 
 
 當(dāng)TextStyle被設(shè)置為Custom的時(shí)候,設(shè)置使用的字符串。 
 | 
 
 
 
 TextStyle 
 | 
 
 設(shè)置進(jìn)度條的文本部分是否顯示。 
 | 
 
 
 
 下面的示例代碼創(chuàng)建一個(gè)紅色的進(jìn)度指示器單元格: 
 
 
 
 
 FarPoint.Win.Spread.CellType.ProgressCellType progcell = new FarPoint.Win.Spread.CellType.ProgressCellType(); 
 progcell.FillColor = Color.Red; 
 fpSpread1.ActiveSheet.Cells[0, 0].CellType = progcell; 
 | 
 
 
 
 附: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)---常用的單元格類型(上) |