找回密码
 立即注册

QQ登录

只需一步,快速开始

holly.huang

初级会员

34

主题

125

帖子

365

积分

初级会员

积分
365

活字格认证微信认证勋章

holly.huang
初级会员   /  发表于:2014-8-8 14:00  /   查看:11468  /  回复:17
回复 4楼iceman的帖子

AutoComplete与spread结合的实例,可以给我一个吗?我也碰到类似的问题。

17 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-8-8 14:28:00
沙发
回复 1楼holly.huang的帖子

请参考:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.CellType.ComboBoxCellType combo = new FarPoint.Win.Spread.CellType.ComboBoxCellType();

  4.             string[] cbstr;
  5.             cbstr = new String[] { "王丽", "小明", "胡强", "王茜", "李晓东", "陈志成" };
  6.             string[] strval;
  7.             strval = new String[] { "1", "2", "3", "4", "5", "6" };

  8.             combo.Items = cbstr;
  9.             combo.ItemData = strval;
  10.             combo.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
  11.             combo.Editable = true;

  12.             //指定自动完成的模式及数据源
  13.             combo.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
  14.             combo.AutoCompleteSource = AutoCompleteSource.ListItems;

  15.             fpSpread1.Sheets[0].Cells[0, 0].CellType = combo;

  16.             fpSpread1.EditChange += fpSpread1_EditChange;
  17.         }

  18.         void fpSpread1_EditChange(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
  19.         {
  20.             if (this.fpSpread1.EditingControl!=null)
  21.             {
  22.                 FarPoint.Win.FpCombo fpcombo = this.fpSpread1.EditingControl as FarPoint.Win.FpCombo;

  23.                 int curindex=0;
  24.                 for (int i = 0; i < fpcombo.ItemData.Count; i++)
  25.                 {
  26.                     if (fpcombo.ItemData[i].ToString().Contains(fpcombo.Text))
  27.                     {
  28.                         curindex = i;
  29.                     }
  30.                 }
  31.                 fpcombo.SelectedIndex = curindex;                    

  32.             }
  33.         }
复制代码

评分

参与人数 1满意度 +5 收起 理由
holly.huang + 5 太好了,谢谢!!!!!

查看全部评分

回复 使用道具 举报
holly.huang
初级会员   /  发表于:2014-8-8 15:02:00
板凳
非常感谢,不过存在一个问题,每次敲一个键盘的时候都会去调用fpSpread1_EditChange,可不可以按个回车键的时候再去调用fpSpread1_EditChange事件呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-8 15:08:00
地板
回复 3楼holly.huang的帖子

可以使用这个事件:
  1. void fpSpread1_EditModeOff(object sender, EventArgs e)
  2. {
  3. }
复制代码
回复 使用道具 举报
holly.huang
初级会员   /  发表于:2014-8-8 15:20:00
5#
不行,这个事件回调之后,cell的值没有变化。。。。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-8 17:53:00
6#
回复 5楼holly.huang的帖子

  1.         void fpSpread1_EditModeOff(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.EditMode = true;
  4.             FarPoint.Win.FpCombo fpcombo = this.fpSpread1.EditingControl as FarPoint.Win.FpCombo;
  5.             for (int i = 0; i < fpcombo.ItemData.Count; i++)
  6.             {
  7.                 if (fpcombo.ItemData[i].ToString().Contains(fpcombo.Text))
  8.                 {
  9.                     curindex = i;
  10.                     break;
  11.                 }
  12.             }

  13.            fpcombo.SelectedIndex = curindex;
  14.            this.fpSpread1.ActiveSheet.Cells[0, 0].Text = fpcombo.SelectedItem.ToString();
  15.            this.fpSpread1.EditMode = false;

  16.         }
复制代码

评分

参与人数 1满意度 +5 收起 理由
holly.huang + 5 非常感谢!!!!!

查看全部评分

回复 使用道具 举报
holly.huang
初级会员   /  发表于:2014-8-10 23:54:00
7#
接上述问题,请教一下:ComboBoxCellType 类型保存到数据库,请问保存的是Items 还是ItemData,读取出来如何绑定?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-11 18:09:00
8#
回复 7楼holly.huang的帖子

请问您是通过什么方式保存的?从数据库中取出还需要转换成 String[] 方式进行赋值。
回复 使用道具 举报
holly.huang
初级会员   /  发表于:2014-8-11 21:05:00
9#
每一列对应一个字段保存,从数据库读出绑定后,怎么做“转换成 String[] 方式进行赋值”呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-12 11:43:00
10#
回复 9楼holly.huang的帖子

保存的时候看您这边取什么值了。
取 Cell.ext 就是界面上显示的文本值,对应单元格的Text属性,对应ComboBoxCellType 是 Items属性。
取Cell.Value值,对应单元格为 Value 属性,对应ComboBoxCellType 是 ItemData 属性。

转换成 String[] 需要一些额外操作,无法直接转换,例如可以先提取该列的唯一值再赋值到 string[]中。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部