请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

dyl

注册会员

9

主题

29

帖子

66

积分

注册会员

积分
66

活字格认证

dyl
注册会员   /  发表于:2012-1-31 16:25  /   查看:8792  /  回复:11
我用下列代码将列头设置为CheckBoxCellType,但是无法勾选。请问我该怎么做?
  1.    
  2. Imports WinSpread = FarPoint.Win.Spread
  3.                         
  4. Dim chCellType As New WinSpread.CellType.CheckBoxCellType
  5. chCellType.Caption ="选择"
  6. spread.ActiveSheet.ColumnHeader.Columns(0).CellType = chCellType
  7. spread.ActiveSheet.ColumnHeader.Columns(0).Locked = False
复制代码

11 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-1-31 17:26:00
沙发

回复 1# dyl 的帖子

你好,因为列头不能编辑所以设置CheckBoxCellType无效,你想实现什么功能呢。
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-1-31 17:31:00
板凳
需求场景为:
第一列全是CheckBox,在列头的CheckBox中勾选,则此列全选,在列头取消勾选,则此列全部消选。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-1-31 17:52:00
地板
请参考以下代码:
  1. Public Class Form1

  2.     Private Sub FpSpread1_CellClick(sender As System.Object, e As FarPoint.Win.Spread.CellClickEventArgs) Handles FpSpread1.CellClick
  3.         If e.ColumnHeader And e.Column = 0 Then
  4.             FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).Value = Not FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).Value

  5.             For index = 0 To FpSpread1.ActiveSheet.RowCount() - 1
  6.                 FpSpread1.ActiveSheet.Cells(index, 0).Value = FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).Value
  7.             Next

  8.         End If
  9.     End Sub

  10.     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

  11.         FpSpread1.ActiveSheet.ColumnCount = 3
  12.         FpSpread1.ActiveSheet.RowCount = 5

  13.         FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).CellType = New FarPoint.Win.Spread.CellType.CheckBoxCellType()
  14.         FpSpread1.ActiveSheet.Columns(0).CellType = New FarPoint.Win.Spread.CellType.CheckBoxCellType()

  15.     End Sub

  16. End Class
复制代码
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-2-1 10:50:00
5#
我设置了列头的Caption

  1.         Dim chCellType As New WinSpread.CellType.CheckBoxCellType
  2.         chCellType.Caption = "选择"
  3.         FpSpread1.ActiveSheet.ColumnHeader.Columns(col.Index).CellType = chCellType
复制代码
结果使用

  1. FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).Value
复制代码
取出来的是“选择”,而不是Boolean, 这怎么处理
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-1 17:15:00
6#
你好,附件是我测试的Demo,可以正常的执行Check和Uncheck操作,不知是否和你的代码一样:
WindowsApplication1.zip (25.01 KB, 下载次数: 337)
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-2-1 18:02:00
7#
我的代码就多了一段FpSpread1.ActiveSheet.Columns(0).Label = "选择",就报错了。我本来是使用Label 设置列标题的,后来发现列头的类型设置为CheckBox后,标题就不显示了,所以用Caption再设置了一次。
  1.     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  2.         FpSpread1.ActiveSheet.ColumnCount = 3
  3.         FpSpread1.ActiveSheet.RowCount = 5
  4.         '我加了一段就报错了
  5.         FpSpread1.ActiveSheet.Columns(0).Label = "选择"
  6.         Dim checkType As New FarPoint.Win.Spread.CellType.CheckBoxCellType()
  7.         checkType.Caption = "选择"
  8.         FpSpread1.ActiveSheet.ColumnHeader.Columns(0).CellType = checkType
  9.         FpSpread1.ActiveSheet.Columns(0).CellType = New FarPoint.Win.Spread.CellType.CheckBoxCellType()
  10.     End Sub
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-1 18:14:00
8#
设置FpSpread1.ActiveSheet.Columns(0).Label = "选择"之后,得不到FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 0).Value所以报错,还是建议使用Caption 来显示列头文字吧。
回复 使用道具 举报
dyl
注册会员   /  发表于:2012-2-2 09:46:00
9#
那请问这个Label 是干什么用的?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-2 10:14:00
10#

回复 9# dyl 的帖子

dyl  你好,
1.在没有给列头单元格设置 CheckBoxCellType 时,Column 下 Label 作用为设置列头标题,设置列头 Label 后,列头 Text 和 Value 值同时改变。
2.如果列头设置了 CheckBoxCellType 单元格类型,那么这时需要使用 CheckBoxCellType Caption 属性来设置列头标题。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部