找回密码
 立即注册

QQ登录

只需一步,快速开始

victorysoft

高级会员

40

主题

100

帖子

1040

积分

高级会员

积分
1040

活字格认证

victorysoft
高级会员   /  发表于:2013-3-12 13:42  /   查看:5753  /  回复:6
Form2锁定慢的问题.
Form1有几个问题写到代码里了,希望能尽快回复一下.

Spread技术实践.rar

93.56 KB, 下载次数: 140

6 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-12 15:08:00
沙发
我修改了button1的click事件的代码,如下:
  1.     private void button1_Click(object sender, EventArgs e)
  2.     {            
  3.         string time = "用时:" + DateTime.Now.ToString("hh:mm:ss");
  4.         Color color = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
  5.         foreach (DataRow dr in dt.Rows)
  6.         {
  7.             // 先计算 ID值
  8.             int id = int.Parse(dr["ID"].ToString()) + 3;

  9.             if (id % 2 == 0)
  10.             {
  11.                 // 将通过Cells修改为Rows
  12.                 fpSpread1_Sheet1.Rows[id].Locked = true;
  13.                 fpSpread1_Sheet1.Rows[id].BackColor = color;
  14.                     
  15.                 //fpSpread1_Sheet1.Cells[int.Parse(dr["ID"].ToString()) + 3, 0, int.Parse(dr["ID"].ToString()) + 3, sheet.Columns.Count - 1].Locked = true;
  16.                 //fpSpread1_Sheet1.Cells[int.Parse(dr["ID"].ToString()) + 3, 0, int.Parse(dr["ID"].ToString()) + 3, sheet.Columns.Count - 1].BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
  17.             }
  18.         }
  19.         time = time + "-->" + DateTime.Now.ToString("hh:mm:ss");
  20.         label1.Text = time;
  21.     }
复制代码



SolutionSpreadTest.zip (73.7 KB, 下载次数: 124)
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-3-12 18:17:00
板凳
Form1里面的demo有看吗?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-12 19:43:00
地板
请问 Form1 是什么问题呢。
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-3-13 09:22:00
5#
Form1 的问题我都在form1.cs里写了.就是一些代码的上方提出的疑问.
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-3-13 14:11:00
6#
请回复
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-3-13 14:14:00
7#
回复 6楼victorysoft的帖子

解决方法如下:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             DataTable dt = new DataTable();
  4.             dt.Columns.Add("第一列");
  5.             dt.Columns.Add("第二列");
  6.             dt.Columns.Add("第三列");
  7.             dt.Rows.Add("一", "二", "三");
  8.             dt.Rows.Add("一", "二", "三");
  9.             dt.Rows.Add("一", "二", "三");

  10.             //问题一
  11.             //列表数据绑定
  12.             /**********************************
  13.              * 请问:我如何按列绑定区域,例如spread第1列帮数据源第5列的数值?
  14.              **********************************/
  15.             this.fpSpread1.Sheets[0].AutoGenerateColumns = false;
  16.             this.fpSpread1.DataSource = dt;
  17.             this.fpSpread1.Sheets[0].Columns[0].DataField = dt.Columns[2].Caption;

  18.             //问题二
  19.             /**************************************
  20.             * 请问:我知道数据行DataRow我如何找到spread对应的行?
  21.             **************************************/
  22.             DataTable dt = new DataTable("Testing");
  23.             int i;
  24.             dt.Columns.Add("Number");
  25.             dt.Columns.Add("Letter");
  26.             dt.Rows.Add(new Object[] { "1", "One" });
  27.             dt.Rows.Add(new Object[] { "2", "Two" });
  28.             FarPoint.Win.Spread.Model.DefaultSheetDataModel dataModel = new FarPoint.Win.Spread.Model.DefaultSheetDataModel(dt);
  29.             fpSpread1.ActiveSheet.Models.Data = dataModel;
  30.             i = dataModel.GetModelRowFromDataRow(0);


  31.             //问题三
  32.             /**************************************
  33.             * 请问:我如何进行数据操作的时候是用绑定到spread上的行或单元格而不是对datatable?
  34.             **************************************/
  35.            //可以使用 Spread 区域绑定方法去绑定数据,之后再通过合并单元格操作非绑定区域去模拟该布局。测试代码:
  36.             FarPoint.Win.Spread.Data.SpreadDataBindingAdapter data = new FarPoint.Win.Spread.Data.SpreadDataBindingAdapter();
  37.             data.DataSource = dt;
  38.             data.Spread = fpSpread1;
  39.             data.SheetName = "Sheet1";
  40.             data.MapperInfo = new FarPoint.Win.Spread.Data.MapperInfo(4, 1, 11, 14);
  41.             data.FillSpreadDataByDataSource();


  42.             //问题四
  43.             /*********************************
  44.              * 请问:我数据重新删除或者添加以后,是不是要重新设置绑定区域?
  45.              *********************************/
  46.             //不需要




  47.             //问题五
  48.             /*******************************
  49.             * 请问:删除完了再添加,结果我dattable里面的数据行增加了,但是sheetrows的行数却没有变化.
  50.             *请发 Demo 调试。
  51.             
  52.             //问题六
  53.             * 请问:我使用 sheet.Columns["WZMC"].Index无法定位到我想要的列
  54.             *******************************/
  55.             this.fpSpread1.Sheets[0].ActiveColumnIndex = 2;
  56.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部