開發人員可以定義使用者與行和列的互動,如是否可以更改行或列的大小、是否可以移動行或列、凍結指定的行或列、在行或列中尋找資料等。
更改行或列的大小
你可以允許使用者重新調整表單中行或列的大小。 設定行的Resizable屬性以允許使用者重設行的大小,設定列的Resizable屬性以允許使用者重設列的大小。使用者也可以雙擊列首與列首之間的分隔線以重新設定列的寬窄,以適應列首文字的寬度。
使用者要重設行或列的大小,僅需滑鼠左鍵單擊行首或列首的邊界線,拖拽至所需位置釋放滑鼠。 如所示,當左鍵被按下時,滑鼠位置就會顯示一個工具列。 一定要點擊列的右邊緣或行的下邊緣以改變列寬或行高。使用者雙擊行與行之間的分隔線可以讓行自動調整高度以顯示行中最高文本, 雙擊列與列之間的分隔線可以讓列自動調整寬度以顯示列中最寬文本.
預設情況下,使用者可以修改資料區域的行或列的大小,但是行首和列首的大小是不允許被修改的。 在代碼中,你可以重設行首或列首的大小,不僅僅局限於資料區域的行或列。你也可以使用Resizable屬性覆蓋預設的行為,阻止使用者改變大小。
下面的代碼會允許行首中的一列改變大小:
fpSread.Sheets[0].RowHeader.Columns[0].Resizable = true;
下面的代碼允許行首中的全部列改變大小:
fpSread.Sheets[0].RowHeader.Columns.Default.Resizable = true;
GetColumnSizeable你可以使用SheetView類中的方法來決定行或列的大小可以被使用者修改:
SetColumnSizeable
GetRowSizeable
SetRowSizeable
移動行或列
你可以允許使用者拖拽移動行或列。設定AllowRowMove屬性以允許使用者移動行,設定AllowColumnMove 屬性以允許使用者移動列。如果你想允許使用者移動多行或多列,需設定AllowRowMoveMultiple 或AllowColumnMoveMultiple 屬性。
為移動行或列,使用者僅需要左鍵按住行或列的頭部,在行首(列首)地區內向前或向後拖拽,至所需位置放開滑鼠。 (如果拖拽多行或多列,要事先選中欲操作的行或列)。 被移動的行或列會跟隨滑鼠指標顯示一個透明的拷貝。如所示,第四列就被移到了左邊。
你可以使用SheetView.MoveRow方法,編程實現重定位一行,也可以使用SheetView.RemoveRows 一次性移除多行。你可以使用SheetView.MoveColumn 方法,編程實現重定位一列。也可以使用SheetView.RemoveColumns方法 一次性移除多列。
通過對一個欄區域進行Remove操作,你就能夠一次性移除若干列。例如:
fpSpread1.Sheets(0).Columns(1,5).Remove()
設定固定的(凍結的)行或列
你可以凍結表單中的行或列(使其不可滾動)。 你可以凍結任意個表單頂部的行,使其成為前置行,你也可以凍結左側任意多個列,使其成為前置列 你也可以凍結任意多個表單底部的行,或最右邊的列。無論滑鼠如何滾動,凍結的前置行或前置列都會在視圖的頂部或最左端顯示。無論滑鼠如何滾動,凍結的尾行或尾列都會在視圖的底部或最右端顯示。
下列圖表顯示了一個凍結的尾列和尾行在視圖中的顯示位置。
有關凍結行和列的屬性包括:
FrozenRowCount
FrozenColumnCount
FrozenTrailingColumnCount
FrozenTrailingRowCount
凍結的行或列在運行時是不可以滾動的,但是在設計時,它們是可以滾動的。
尾凍結列和尾凍結行在每一頁的底部和右部不會被重複列印,作為最後一行或最後一列列印一次。 前置行和前置列可以被重複列印。
設定表單的FrozenRowCount, FrozenColumnCount, FrozenTrailingColumnCount, 或FrozenTrailingRowCount 屬性:
fpSpread1.Sheets[0].FrozenColumnCount = 2;fpSpread1.Sheets[0].FrozenRowCount = 2;fpSpread1.Sheets[0].FrozenTrailingColumnCount = 2;fpSpread1.Sheets[0].FrozenTrailingRowCount = 2;
尋找含有資料的行或列
當使用表單工作時,你可以利用表單類中的各種不同成員來找出行或列最後一個或者格式的索引。你可以使用如下由表單所提供的方法。
GetLastNonEmptyColumn 方法
GetLastNonEmptyRow 方法
你可以通過如下屬性來得到包含資料的行或列的數目:
NonEmptyColumnCount屬性
NonEmptyColumnCount屬性
調整行列尺寸以適應資料大小
根據儲存格中資料的長度和寬度,你可以調整列寬或行高。最大資料所在行或列的尺寸稱為首選尺寸。利用首選尺寸的方法有:
Row類中的GetPreferredHeight方法
Column類中的GetPreferredWidth方法
SheetView類中的 GetPreferredRowHeight方法
SheetView類中的 GetPreferredColumnWidth方法
SheetView類中的 GetPreferredCellSize方法
Row類中的GetPreferredHeight方法和 Column類中的GetPreferredWidth方法總是包括標題的儲存格。對於重載了GetPreferredColumnWidth方法的表單類,當重載允許你選擇包含或不包含標題的儲存格時,始終會有一個重載包含標題的儲存格。在下面的這段代碼中,width1和width2包含了標題儲存格而width3則不包含標題的儲存格。
float width1 = fpSpread.Sheets[0].Columns[0].GetPreferredWidth();float width2 = fpSpread.Sheets[0].GetPreferredColumnWidth(0);float width3 = fpSpread.Sheets[0].GetPreferredColumnWidth(0, true);
使用多種不同方法來設定列寬和行高:
FarPoint.Win.Spread.Column col;float sizerow;float sizercol;row = fpSpread1.ActiveSheet.Rows[0];col = fpSpread1.ActiveSheet.Columns[0];fpSpread1.ActiveSheet.Cells[0, 0].Text = "This text is used to determine the height and width.";sizerow = row.GetPreferredHeight();sizecol = col.GetPreferredWidth();row.Height = sizerow;col.Width = sizecol;
附:Spread for Windows Forms快速入門系列文章
Spread for Windows Forms快速入門(1)---開始使用Spread
Spread for Windows Forms快速入門(2)---設定Spread表單