找回密码
 立即注册

QQ登录

只需一步,快速开始

miyaminn

论坛元老

48

主题

121

帖子

2万

积分

论坛元老

积分
22182

活字格认证

miyaminn
论坛元老   /  发表于:2014-8-15 09:26  /   查看:8643  /  回复:8
Spread可编辑列,为什么选择这一列按Ctrl+X,列头的名字也会被剪切掉呢?

现在想要的效果是,选中这一列,按Ctrl+X,只清空掉除了列头以为的内容,
并且放到剪切板里,列头不要清空,但是列头的内容也在剪切板里面。

以上,谢谢!!!

8 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-8-15 15:24:00
沙发
回复 1楼miyaminn的帖子

请问您使用的是 Spread 哪个版本?默认情况下是不会清空的。
不过可以尝试以下代码:
this.fpSpread1.ClipboardOptions = FarPoint.Win.Spread.ClipboardOptions.NoHeaders;
回复 使用道具 举报
miyaminn
论坛元老   /  发表于:2014-8-15 15:59:00
板凳
回复 2楼iceman的帖子

这个是客户一家公司用的Spread,版本号我还不知道。
加了你说的代码确实不会把列头剪切下来,但是贴数据的时候就贴不出列头了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-15 18:44:00
地板
回复 3楼miyaminn的帖子

请你确认下版本,因为在 Spread 7.0V4 中无论如何设置 列头 不会被剪切掉。如果该版本默认是这个行为那就需要在fpSpread1_ClipboardChanging事件里面再手动设置列头。
回复 使用道具 举报
miyaminn
论坛元老   /  发表于:2014-8-18 09:02:00
5#
回复 4楼iceman的帖子

Spread 3.0
请问应该怎样在fpSpread1_ClipboardChanging里面写呢?
谢谢。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-19 11:14:00
6#
回复 5楼miyaminn的帖子

请稍候,我已经安装相应版本,有结果反馈给你。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-19 12:07:00
7#
回复 0楼iceman的帖子

测试代码如下:

  1.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         Me.FpSpread1.ActiveSheet.ColumnHeaderAutoText = FarPoint.Win.Spread.HeaderAutoText.Blank
  3.         Me.FpSpread1.ActiveSheet.ColumnHeader.Cells(0, 1).Text = "11"

  4.         Me.FpSpread1.ClipboardOptions = FarPoint.Win.Spread.ClipboardOptions.NoHeaders

  5.     End Sub
  6.     Dim colIndex As Integer = 0
  7.     Dim colLabel As String = ""
  8.     Private Sub FpSpread1_ClipboardChanging(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FpSpread1.ClipboardChanging

  9.         colLabel = Me.FpSpread1.ActiveSheet.ActiveColumn.Label
  10.         colIndex = Me.FpSpread1.ActiveSheet.ActiveColumnIndex
  11.     End Sub

  12.     Private Sub FpSpread1_ClipboardPasting(ByVal sender As System.Object, ByVal e As FarPoint.Win.Spread.ClipboardPastingEventArgs) Handles FpSpread1.ClipboardPasting
  13.         Me.FpSpread1.ActiveSheet.ActiveColumn.Label = colLabel
  14.     End Sub
复制代码
回复 使用道具 举报
miyaminn
论坛元老   /  发表于:2014-8-20 14:00:00
8#
回复 7楼iceman的帖子

非常感谢你对这个版本也耐心回答,
现在还有一个问题,Ctrl+X后,列头虽然没有被剪切掉,
但是粘贴到Excel里面,是没有列头的。不知道这个如何解决。

在此对你的耐心解答表示非常感谢。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-20 17:50:00
9#
回复 8楼miyaminn的帖子

这个问题我想可以通过操作剪切板来实现,下面是获取剪切板内容行数的代码:

  1. Clipboard.GetText().Split(Chr(10))
复制代码


可以尝试添加列头标签和换行符到剪切板内容中,看能否实现你的需求?
有问题欢迎继续沟通。

评分

参与人数 1满意度 +5 收起 理由
miyaminn + 5 已经解决,谢谢!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部