wotangjing 发表于 2014-2-14 11:53:00

复制粘贴自定义行

我现在有如下的一个表单,包含了自定义控件.
http://our.componentone.com/2012/11/27/how-to-host-silverlight-listbox-control-in-spread-cell/

请问我在添加行时,能否包含自定义控件信息(等效于复制上一行的所有信息),即下一行同样位置含有同样自定义控件,并且下拉框为同样的值.

iceman 发表于 2014-2-14 15:06:00

回复 1楼wotangjing的帖子

wotangjing 你好,
抱歉,Spread 目前无法实现针对自定义控件的复制,需要手动设置。

wotangjing 发表于 2014-2-14 15:41:00

回复 2楼iceman的帖子

你好,iceman.
请问应该如何手动设置,能否给个简单案例?比较着急.

roger.wang 发表于 2014-2-17 10:43:00

回复 3楼wotangjing的帖子

抱歉,回复晚了。

在添加新行时,要通过代码实现“自定义控件”的复制。
代码实现步骤如下:
1 修改CellType = new 自定义控件
2 new 自定义控件的数据从上一行拷贝

wotangjing 发表于 2014-2-17 15:04:00

回复 4楼roger.wang的帖子

没关系.
不知道您做个demo方不方便?因为我确实对这个编码不是很熟悉.

roger.wang 发表于 2014-2-17 16:12:00

回复 5楼wotangjing的帖子

做过demo没有问题,非常乐意帮您解决问题。

我这里从头做,需要多一些时间。
您要是能给提供目前做过的demo---即尝试过的步骤,我相信速度会更快的。

wotangjing 发表于 2014-2-18 09:56:00

回复 6楼roger.wang的帖子

好的,谢谢.
Demo可参考http://gcdn.gcpowertools.com.cn/showtopic-10857.html
附件在7楼

roger.wang 发表于 2014-2-18 11:47:00

回复 7楼wotangjing的帖子

结合上面的demo,添加新增行按钮函数,参考代码如下:

private void Button_Click(object sender, RoutedEventArgs e)
      {
            //新增一行
            MyWorksheet sheet = this.gcSpreadSheet1.ActiveSheet as MyWorksheet;
            sheet.RowCount++;

            //值拷贝
            ValueCopy(sheet.RowCount - 2, sheet.RowCount - 1);
            
      }

      private void ValueCopy(int from_row, int to_row)
      {
            MyWorksheet sheet = this.gcSpreadSheet1.ActiveSheet as MyWorksheet;
            int colCount = sheet.ColumnCount;

            for (int i = 0; i < colCount; i++)
                        {
                object oldValue = sheet.Rows.GetValue(i);
                sheet.Rows.SetValue(i, oldValue);
                        }
            
      }
页: [1]
查看完整版本: 复制粘贴自定义行