FarPoint FpSpread控件的使用心得2

更新时间:2024-06-23 12:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

FpSpread表格控件,FpSpread事件介绍

''' 单击单元格

Private Sub FpSpread1_CellClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.CellClickEventArgs) Handles FpSpread1.CellClick Me.ShowEvents(\单击单元格\ End Sub

''' 单元格双击

Private Sub FpSpread1_CellDoubleClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.CellClickEventArgs) Handles FpSpread1.CellDoubleClick Me.ShowEvents(\双击单元格\ End Sub

''' 单元格内容发生变变时

Private Sub FpSpread1_EditChange(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.EditorNotifyEventArgs) Handles FpSpread1.EditChange Me.ShowEvents(\单元格内容变化\ End Sub

''' 编辑单元格结束时,如按回车或焦点离开时

Private Sub FpSpread1_EditModeOff(ByVal sender As Object, ByVal e As System.EventArgs) Handles FpSpread1.EditModeOff

Me.ShowEvents(\单元格编辑结束\ End Sub

''' 编辑模式开始时

Private Sub FpSpread1_EditModeOn(ByVal sender As Object, ByVal e As System.EventArgs) Handles FpSpread1.EditModeOn

Me.ShowEvents(\单元格开始编辑\ End Sub

''' 单元格获取焦点时

Private Sub FpSpread1_EnterCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.EnterCellEventArgs) Handles FpSpread1.EnterCell Me.ShowEvents(\单元格获取焦点\ End Sub

''' 单元格失去焦点时

Private Sub FpSpread1_LeaveCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.LeaveCellEventArgs) Handles FpSpread1.LeaveCell Me.ShowEvents(\单元格失去焦点\

End Sub

其中FpSpread表格中选中一个单元格时,会引发三个事件Entercell,LeaveCell,CellClickFpSpread表格编辑单元格过程时,会引发EditModeOn,N个EditChange,EditModeOff

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bay120/archive/2009/03/27/4030951.aspx

1.FpSpread控件,指定单元格获取焦点.

Me.FpSpread1.ActiveSheet.SetActiveCell(1, 1, False)最后一个参数如果为False则,选择新的单元格时,不清除已选择的对象.

2.FpSpread控件,锁定单元格,行,列.

'锁定列 Me.FpSpread1.ActiveSheet.Columns(0, 1).Locked = True Me.FpSpread1.ActiveSheet.Columns(3).Locked = True

'锁定行 Me.FpSpread1.ActiveSheet.Rows(0).Locked = True Me.FpSpread1.ActiveSheet.Rows(2, 3).Locked = True

'锁定单元格 Me.FpSpread1.ActiveSheet.Cells(4, 5, 6, 9).Locked = True

'锁定区域的背景色 Me.FpSpread1.ActiveSheet.LockBackColor = Color.Red '前景色 Me.FpSpread1.ActiveSheet.LockForeColor = Color.Blue

3.FpSpread控件,增加行和列

Me.ShowMesage(String.Format(\当前有 {0} 行 {1} 列\Me.FpSpread1.ActiveSheet.Rows.Count,_ Me.FpSpread1.ActiveSheet.Columns.Count))

'增加列 Me.FpSpread1.ActiveSheet.Columns.Add(Me.FpSpread1.ActiveSheet.Columns.Count, 1) '增加行 Me.FpSpread1.ActiveSheet.Rows.Add(Me.FpSpread1.ActiveSheet.Rows.Count, 1) Me.ShowMesage(String.Format(\现在有 {0} 行 {1} 列\Me.FpSpread1.ActiveSheet.Rows.Count, Me.FpSpread1.ActiveSheet.Columns.Count))

4.FpSpread控件,删除行和列 Me.ShowMesage(String.Format(\当前有 {0} 行 {1} 列\Me.FpSpread1.ActiveSheet.Rows.Count,Me.FpSpread1.ActiveSheet.Columns.Count))

Me.FpSpread1.ActiveSheet.Columns.Remove(10, Me.FpSpread1.ActiveSheet.Columns.Count - 10) Me.FpSpread1.ActiveSheet.Rows.Remove(10, Me.FpSpread1.ActiveSheet.Rows.Count - 10) Me.ShowMesage(String.Format(\现在有 {0} 行 {1} 列\Me.FpSpread1.ActiveSheet.Columns.Count))

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bay120/archive/2009/04/03/4030954.aspx

************************************************************************************

Spread集中在一件事上-使您简单的来开发您的用户能方便浏览并且更新表格数据所需的应用程序。

关于它的特点: (只是一小部分)

多表单

公式交叉表单应用 支持Unicode编码

按照明显的提示,移动行或列

新的科学计数法、单元格类型和数据格式 快速、经过改良的分类排序功能 增强功能的Spread设计器

自定义滚动条颜色、宽度和长度

双击标题。自动调整列宽以适应文本宽度 按百分比缩放打印 适合页面打印

水平居中、垂直居中打印

在打印页面的标题和底部添加字符/时间/数值 增强的图像类型支持,包括.gif 和.jpg 扩展提示文本(支持大于1000个字符)

当加载一个文件时,支持在一个单元格内保存32000个字符 当某一单元格获取焦点时,隐藏和显示焦点的矩形框 进入编辑状态时,自动定位光标至单元格 列标签转换(字母到数值、数值到字母) 在按钮单元格中对齐文本和图像 最大列宽计算,包括按钮单元格

不影响标题的情况下刷新绑定的Spread

本文来自CSDN博客,转载请标明http://blog.csdn.net/kennba/archive/2007/03/08/1523810.aspx

************************************************************

Farpoint Spread (VaSpread)控件VB使用(转帖)

编程 2009-10-17 23:14 阅读221 评论4 字号: 大大 中中 小小 http://www.dqhxz.com/Post_234.html

出处: 原文地址:

1.Spread 中checkbox的用法 列类别选择combo就可以了

spread的帮助文件中间搜索 CellType property, check box cells //------------------------------------------------------

是这样的,我的webform上放了一个FpSpread控件,我想把行头变成checkbox样式,我的方法是在后台代码中定义:

FarPoint.Web.Spread.CheckBoxCellType celltype = new FarPoint.Web.Spread.CheckBoxCellType(); 然后将此type赋给行头:

FpSpread1.ActiveSheetView.RowHeader.Cells[0,0].CellType=celltype;

我的问题是:1.如果我想用一个Button控制当点击Button时,如果CheckBox是选中状态,则在该中显示某某字符,但我不知道这种CheckBox的标识是什么,还有他的状态为选中或没选中返回值是什么?

2.还有其他方法吗?比如我用

FpSpread1.ActiveSheetView.RowHeader.Cells[0,0].Text=\ id=\\\ checked type =\\\ />\ 遇到的困难和刚才一样。 请问怎么解决,多谢!

FpSpread1.columnsheader.cells(0,0).text=\ #\

//-------------------------------------------------------------

确定check所在的位置,然后直接判断FpSpread1.Sheets(0).Cells(1,6).Value是否为1,为1就是选中状态。我是这样的。

Public Sub SetCOLCheck(spd As vaSpread, ByVal lCol1 As Long, ByVal lCol2 As Long, _

Optional ByVal IsCenter As Boolean = True) With spd

.Col = lCol1 .Col2 = lCol2 .Row = -1

.BlockMode = True .CellType = 10 .TypeHAlign = 0

.TypeCheckCenter = IsCenter .BlockMode = False End With End Sub

我使用的是Spread,是这么填加的

//---------------------------------------------------------

1.BorderStyle:调整是否有边框 默认为Fixed3D FixedSingle只有一条线 2.location x,y 调整位置

3.horizontalScrollBarPolicy 默认为Always横向向滚共条始终存在,就是AsNeeded条数超过显示就存在,否则不显示,Never始终没有滚动条

4.verticalScrollBarPolicy 默认为Always纵向滚共条始终存在,就是AsNeeded条数超过显示就存在,否则不显示,Never始终没有滚动条

5.Enabled 是否可以编辑

点击Sheets属性旁的按钮就会出现关于Sheets页里面属性的设置

1.selectionUnit 默认为Cell运行的时候,点击单元格选中的只是一个单元 Column整列,Row整行

2.ColumnCount Spread表示数据的列数

3.RowCount Spread表示数据的行数

4.*OperationMode 主要是MultiSelect,SingleSelect两种的区分SingleSelect只能选一行, MultiSelect可以择多行。

5.rows和Column下的Resizable可以将列和行的大小固定为不可调整

AddColumns(Integer i, Integer j)添加列,i是起始位置,j是列数。

AddRows(Integer i, Integer j)添加列,i是起始位置,j是列数。

.AddSelection(I,j,k,m)添加选中的cell

.ClearRange AddSelection(I,j,k,m,true)清空Spread.还有很多常用的方法。就往Spread中放值的方法

1.创建对应的DataSource Me.FpSpread1_Sheet1().DataSource =objDs.Tables(0)

Me.FpSpread1_Sheet1().Columns(0).DataField = \

Me.FpSpread1_Sheet1().Columns(1).DataField = \

**Id,和name是从数据库中查出来得数据结果集中数据表的字段名。

这样从数据库中查出的值就可放在相应的列上了。

2.也可单独往单元格中放值

Me.FpSpread1_Sheet1.Cells(0, 0).Value() = “123”

*放值时需要注意的是FpSpread1_Sheet1的起始位置是(0,0)

如果只有4行4列的话是不存在(4,4)这样的Cells的

Me.FpSpread1_Sheet1.ActiveRowIndex

可以取得选择的行的索引值,从0开始

FpSpread1_Sheet1.Cells(FpSpread1_Sheet1.ActiveRowIndex, 1)

可以取得选择的行对应单元格的值。

Dim cellButtonType As New FarPoint.Win.Spread.CellType.ButtonCellType cellButtonType.Text = \

Me.SpdYoteyi_Sheet1.ColumnHeader.Cells.Get(0, 3).BackColor System.Drawing.Color.FromArgb(CType(255, Byte), CType(255, Byte), CType(192, Byte))

With frm.SpdYoteyi.Sheets(0) .Columns.Get(0).ForeColor System.Drawing.Color.Red

.Columns.Get(3).ForeColor = System.Drawing.Color.Blue .SetText(0, 0, \

.SetText(0, 7, \ .SetText(0, 9, \会社AAA\

// 动态添加列。

.AddColumns(10, 1)

.Columns.Get(10).Label = \詳しい\

= = .Columns.Get(10).CellType = cellButtonType End With

// 获得当前选中行

.SpdYoteyi.ActiveSheet.ActiveRowIndex()

//-------------------------------------------------

关于spread的一些基本操作

对日软件开发,经常会用到spread控件。使用中积累了一些经验,自己总结一下。 1.spread的cell

在spread的设计界面里可以设置cell的各种属性,和用惯的vb差不多。其实它的help写的挺详细的,刚开始日文不好看起来不方便,现在可以顺利理解了。Cell可以是checkbox,文字,数字,时间等等类型,可以只读,可读写,还可以设置背景色,边框等。和excel相像的。 2.Cell的读写模式。 1. 只读

① 全体只读 With spdTEMP

.Col = 1

.Col2 = .MaxCols .Row = 1

.Row2 = -1 '当spd里数据是0条时,.MaxRows会出错。用-1安全。 .Protect = True .BlockMode = True .Lock = True

.BlockMode = False End With

②部分只读,设置行和列就可以 With spdTEMP .Col = 2 .Col2 = 5 .Row = 1 .Row2 = 8 .Protect = True .BlockMode = True .Lock = True

.BlockMode = False End With

2.一般写模式和覆盖写模式

一般写模式:.EditMode = True

覆盖写模式:.EditModeReplace = True

区别在于 1)光标模式不同,一般写为单个鼠标入力光标,覆盖写已有内容全选,替换输入。 2)当输入带有小数的数字时,覆盖写会自动跳到小数最末位,这可能是spread3.0在win2000下的bug吧。症状是第一遍输入10.23时会变成1.03,第二遍输入时就好了。试验了很多次,最后不得已换成一般写模式。 3.spread的click事件

① 这是一段点击每行第三列时,自动全行copy数据的例子。

Private Sub spdTMSR160_Click(ByVal Col As Long, ByVal Row As Long) Dim temp As String Dim i As Integer

If Row = 0 Then Exit Sub

If spdTMSR160.Lock = True Then Exit Sub

With spdTMSR160 .Col = 3

.Col2 = .MaxRows .Row = Row .Row2 = Row

If Col = 2 And .Value <> \

If MsgBox(\月の予算金額を全ての月にコピーしてもよろしいですか?\vbQuestion + vbYesNo) = vbYes Then .BlockMode = True temp = .Value For i = 1 To 11

.Col = .Col + 1: .Value = temp Next End If End If

.BlockMode = False End With End Sub

② 这是一段有选择按钮的例子。选中时行变色,部分cell改变入力状态。 Private Sub spdTMSR020_Click(ByVal Col As Long, ByVal Row As Long) If Row = 0 Then Exit Sub

' If spdTMSR020.Lock = True Then Exit Sub If Col >= 1 And Col <= 7 Then With spdTMSR020 .Col = 1

.Col2 = .MaxCols .Row = Row

.Row2 = Row

.Value = IIf(.Value = 0, 1, 0) .BlockMode = True

If .Value = 0 Then

' If Row Mod 2 = 0 Then

' .BackColor = RGB(245, 236, 233) ' Else

.BackColor = RGB(255, 255, 255) ' End If .Col = 8 .Col2 = 11 .Row = Row .Row2 = Row .Protect = True .Lock = True Else

.BackColor = RGB(128, 255, 128) .Col = 8 .Col2 = 11 .Row = Row .Row2 = Row .Lock = False .EditMode = True End If

.BlockMode = False End With End If End Sub

spread3.0的选择按钮很脆弱,一不小心小红钩不见了,事件却没有触发。所以把边上的固定列都设为可选择状态。 4.关于背景色的设置。

Backcolor 指定范围,设置背景色

SetOddEvenRowColor,设置奇数,偶数行的颜色。

本来背景色是粉红和白色相间的,但是单行变色判断和全体变色中产生问题,不得不改成全白的。

其根本原因是backcolor比SetOddEvenRowColor要强。Backcolor可以更改SetOddEvenRowColor设置的颜色,而SetOddEvenRowColor却无法改变Backcolor设定的颜色。 而当数据很多时,背景需要刷新时,用backcolor一行一行判断更改,画面会产生剧烈颤抖?.

//---------------------------------- 序号属性说明

1.MaxRows = 10设置总行数为10行 2.MaxCols = 5设置总列数为5列

3.ColHeaderRows = 2表头(列标题)行数为2 4.Row = SpreadHeader定位到表头(列标题) 5.Row = -1定位到行头(在设置列格式时使用) 6.ColWidth(1) = 16设置第1列的列宽为16 7.RowHeight(1) = 12设置第1行的行高为12

8.FontSize = 10\设置当前栏位的字体大小为10(如果.Row = -1, 则设置整列,下同)\

9.TypeHAlign = TypeHAlignRight设置文字水平对齐方式为右对齐 .TypeVAlign = TypeVAlignCenter设置文字垂直对齐方式为居中 10.CellType = CellTypeNumber设置为数字类型 11.TypeNumberDecPlaces = 2设置小数位数 12.TypeNumberShowSep = True设置千位分隔

13.SetText 2, 3, \设置第2列第3行的文本为\

14.GetText 2, 3, MyText将第2列第3行的值赋给变量MyText 15.Row = 3定位到第3行 16.Col = 2定位到第2列

17.Text = \设置当前栏位的文本为\

18MyRow = .ActiveRow将当前行号赋值给变量MyRow 19.InsertRows 2, 1在第2行前插入1行

20.DeleteRows 2, 1\在第2行前删除1行(如果Spread是通过设置数据源 取得数据的话,则必须设置.DataSource = Nothing 才能删除)\

21.InsertCols 2, 1在第2列前插入1列 22.DeleteCols 2, 1在第2列前删除1列

23.AddCellSpan 3, 4, 2, 1从第3列第4行起合并单元格,跨度为2列1行 24.RowHeadersShow = False隐藏行标题 25.ColHeadersShow = False隐藏列标题

26.PrintMarginLeft = 1000打印时左边距=1000(包括预览) 27.PrintMarginTop = 1000打印时上边距=1000(包括预览)

28.OperationMode = OperationModeRow设置Spread的操作模式为行定位(共有6种模式) 29.DataSource = Rs设置Spread的数据源为Rs记录集

*************************************************************

spread常用属性一2008-04-16 21:021.BorderStyle:调整是否有边框 默认为Fixed3D FixedSingle只有一条线 2.location x,y 调整位置

spdResult.Sheets[0].Cells[row,count].Text = txtItemCD.Text;

5 通过上下光标键改变选中行颜色

private void spdResult_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e) {

//首先检查spread行数是否为0

if(spdResult.Sheets[0].Rows.Count==0) {

return; } else {

for(int i=0;i

spdResult.Sheets[0].Rows[i].BackColor=System.Drawing.Color.White; }

int row=e.NewRow;

spdResult.Sheets[0].Rows[row].BackColor=System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(255)), ((System.Byte)(255))); } }

6 下拉列表加载数据(ComBobox) ? 列表追加(适合于数据量少的情况)

FarPoint.Win.Spread.CellType.ComboBoxCellType cb4 = new FarPoint.Win.Spread.CellType.ComboBoxCellType(); cb4.ListWidth = 96; cb4.Editable = true; cb4.MaxDrop = 10; cb4.MaxLength = 1;

string[] priceTagList = new string[]{\无\有\ cb4.Items = priceTagList;

this.spdSetList.ActiveSheet.Columns[4].CellType = cb4;

? 从数据库追加

FarPoint.Win.Spread.CellType.ComboBoxCellType cb12 = new FarPoint.Win.Spread.CellType.ComboBoxCellType(); cb12.ListWidth = 150; cb12.Editable = true; cb12.MaxDrop = 10; cb12.MaxLength = 8;

//dsEmployee:数据集Dataset,已经加载好数据的Dataset string[] employeeList = DataSetToArray(dsEmployee, 8); cb12.Items = employeeList;

this.spdSetList.ActiveSheet.Columns[12].CellType = cb12;

private string[] DataSetToArray(DataSet ds, int BlankNum) {

int i = 0;

int NumLength = 0;

string[] returnArray = new string[ds.Tables[0].Rows.Count];

DataRow foundRows = ds.Tables[0].Rows[ds.Tables[0].Rows.Count -1]; NumLength = foundRows[0].ToString().Length;

foreach(DataRow dr in ds.Tables[0].Rows) {

returnArray[i] = dr[0].ToString().PadLeft(BlankNum, ' ') + \ i++; }

return returnArray; }

7 Focus移动(跨列)

public frmProdSetDetail() {

InitializeComponent(); IsMod = flag;

FarPoint.Win.Spread.InputMap im;

im = spdResult.GetInputMap(InputMapMode.WhenFocused);

im.Put(new Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap); im.Put(new Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap);

im = spdResult.GetInputMap(InputMapMode.WhenAncestorOfFocused);

im.Put(new Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap); im.Put(new Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap); }

指定单元格获得焦点

this.fpSpread1.ActiveSheet.SetActiveCell(row,column);

8 事件触发顺序

_Enter _EnterCell _EditModeOn _EditChange _EditModeOff _LeaveCell

9 用隐藏列保存原始数据

10 设定列类型

private void SpreadSetting() {

string[] ProductHandleTypeList = new string[]{\販売/仕入\販売\仕入\

FarPoint.Win.Spread.CellType.ComboBoxCellType cb3 = new FarPoint.Win.Spread.CellType.ComboBoxCellType(); cb3.ListWidth = 100; cb3.Editable = true; cb3.MaxDrop = 5; cb3.MaxLength = 1;

cb3.Items = ProductHandleTypeList;

this.spdResult.ActiveSheet.Columns[5].CellType = cb3;

//设置一般数据型

FarPoint.Win.Spread.CellType.NumberCellType nmbrcell = new FarPoint.Win.Spread.CellType.NumberCellType(); nmbrcell.ShowSeparator = false; nmbrcell.DecimalPlaces = 0;

nmbrcell.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;

nmbrcell.MaximumValue = 9999; nmbrcell.MinimumValue = 1;

this.spdResult.ActiveSheet.Columns[13].CellType = nmbrcell;

//设置JAN

FarPoint.Win.Spread.CellType.NumberCellType nmbrcellJan = new FarPoint.Win.Spread.CellType.NumberCellType(); nmbrcellJan.ShowSeparator = false; nmbrcellJan.DecimalPlaces = 0;

nmbrcellJan.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional; nmbrcellJan.MaximumValue = 9999999999999; nmbrcellJan.MinimumValue = 0;

this.fpSpread1.ActiveSheet.Columns[0].CellType = nmbrcellJan; this.fpSpread1.ActiveSheet.Columns[0].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Left;

//

FarPoint.Win.Spread.CellType.NumberCellType numberCellType1 = new FarPoint.Win.Spread.CellType.NumberCellType(); numberCellType1.ShowSeparator = true; numberCellType1.DecimalPlaces = 0;

numberCellType1.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional; numberCellType1.MaximumValue = 99999999; numberCellType1.MinimumValue = 0;

this.spdResult.ActiveSheet.Columns[20].CellType = numberCellType1;

//%数的设定

FarPoint.Win.Spread.CellType.PercentCellType prctcell = new FarPoint.Win.Spread.CellType.PercentCellType(); prctcell.PercentSign = \

this.spdResult.ActiveSheet.Columns[33].CellType = prctcell;

//日期的设定

FarPoint.Win.Spread.CellType.DateTimeCellType datecell = new FarPoint.Win.Spread.CellType.DateTimeCellType();

datecell.MaximumDate = new System.DateTime(2050, 12, 31, 0, 0, 0, 0); datecell.MinimumDate = new System.DateTime(2001, 1, 1, 0, 0, 0, 0);

this.spdResult.ActiveSheet.Columns[27,30].CellType = datecell; }

11 列、单元格锁定

//锁定

this.fpSpread1.ActiveSheet.Columns[0,4].Locked = true;//锁定列范围

this.fpSpread1.ActiveSheet.Columns[0].Locked = true;//锁定单列

//解锁

this.fpSpread1.ActiveSheet.Columns[0,4].Locked = false;//解锁列范围

this.fpSpread1.ActiveSheet.Columns[0].Locked = false;

12 Spread追加行、列

//追加行

int rowindex = this.fpSpread1.ActiveSheet.Rows.Count; this.fpSpread1.ActiveSheet.Rows.Add(rowindex,1);

//追加列

int columnindex = this.fpSpread1.ActiveSheet.Columns.Count; this.fpSpread1.ActiveSheet.Columns.Add(columnindex,1);

13 行、列删除

//删除行

this.fpSpread1.ActiveSheet.Rows.Remove(startindex,count);

//追加列

this.fpSpread1.ActiveSheet.Columns.Remove(startindex,count);

14 button事件

private void spdSetList_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e) {

int rowCount = e.Row;

int columnCount = e.Column;

if (e.Column == 16) {

if (message.ShowMessage(\選択したライン\ {

string DeleteTag = this.spdSetList.ActiveSheet.Cells[rowCount, columnCount+1].Text.Trim(); if (DeleteTag == \ {

this.spdSetList.ActiveSheet.Cells[rowCount, columnCount+1].Text = \

this.spdSetList.ActiveSheet.Cells[rowCount,columnCount+1].BackColor = clrWater; this.spdSetList.ActiveSheet.Rows[rowCount].Visible = false; }

else if (DeleteTag == \ {

this.spdSetList.ActiveSheet.Rows[rowCount].Remove(); } } } }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiezigege/archive/2009/08/27/4486642.aspx

******************************************************

Spread的常用事件 收藏

1 // 单元格编辑结束,焦点离开或者按回车键时 比如:你要判断当前单元格输入内容是否合法。

private void fpSpread1_EditModeOff(object sender, System.EventArgs e) {

}

// 单元格得到焦点时触发

2 private void fpSpread1_EnterCell(object sender, FarPoint.Win.Spread.EnterCellEventArgs e) {

}

// 编辑单元格时触发,单元格内容发生改变 3 private void fpSpread1_EditChange(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e) { }

4 // 编辑模式开始时触发

private void fpSpread1_EditModeOn(object sender, System.EventArgs e) { }

5 // 单元格失去焦点时触发

private void fpSpread1_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e) {

if(this.spdSetList.ActiveSheet.RowCount ==0) {

return; } }

6 // 双击Spread时触发 一般用来付值,比如把选中行内容传给其他控件 private void fpSpread1_CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e) {

}

7 // 单击Spread时触发 一般用来改变选中行的颜色

private void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e) {

}

8 // 一般用来检测输入内容是否合法,比如检测输入的内容是否是数字

private void fpSpread1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {

if(e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == 8 || e.KeyChar == 13) {

e.Handled = false; } else {

e.Handled = true; } }

9 // 用来捕捉按钮列等属于按钮范畴的事件 private void spdSetList_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e) {

}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kennba/archive/2007/03/20/1534651.aspx

*************************************** spread 打印示例代码 收藏 范例C:/Program Files/FarPoint Technologies/Spread70/samples/ActiveX/VB6/OwnerPrint/Project1.vbp

fpSpread1.PrintUseDataMax = False

Printer.Print \

fpSpread1.PrintHeader = \

Call fpSpread1.OwnerPrintDraw(Printer.hDC, 1000, 360, Printer.Width, (Printer.Height / 4), 1) fpSpread1.PrintHeader = \

Call fpSpread1.OwnerPrintDraw(Printer.hDC, 1000, (Printer.Height / 4) + 360, Printer.Width, (Printer.Height / 2), 1)

fpSpread1.PrintHeader = \

Call fpSpread1.OwnerPrintDraw(Printer.hDC, 1000, (Printer.Height / 2) + 360, Printer.Width, ((3 * Printer.Height) / 4), 1)

fpSpread1.PrintHeader = \

Call fpSpread1.OwnerPrintDraw(Printer.hDC, 1000, ((3 * Printer.Height) / 4) + 360, Printer.Width, Printer.Height, 1)

Printer.EndDoc

本文来自CSDN博客,转载请标http://blog.csdn.net/lanman/archive/2007/07/26/1710625.aspx

*************************************************************

出处明:

本文来源:https://www.bwwdw.com/article/1b23.html

Top