找回密码
 立即注册

QQ登录

只需一步,快速开始

malimalihong

论坛元老

6

主题

27

帖子

4884

积分

论坛元老

积分
4884

活字格认证

最新发帖
malimalihong
论坛元老   /  发表于:2011-7-27 15:47  /   查看:11581  /  回复:14
我参照http://gcdn.grapecity.com/showtopic-1504.html也做了一个Combox。
可是却编辑不了,只能选择。

具体的业务是这样的:从数据库里取出两列,一个Code,一个Name。
在这个Combox中,输入Code,找到相应的Name显示出来。

这个怎么能实现呢?

这里是个好地方,刚用Spread不久,以后要经常来逛。呵呵

14 个回复

正序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-1 16:39:00
15#
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-8-1 16:33:00
14#

回复 13# Zera 的帖子

谢谢您的回答
做了实验,这下懂了。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-1 10:25:00
13#
回答1:你可以直接指定单元格的Value,然后ComboBox会显示相应的值, 接合9楼的代码就是fpSpread1.Sheets[0].Cells[0, 0].Value = "3";此时ComboBox会显示ABBC

回答2:设置CellType之后不进入编辑状态也可以看到ComboBox,而设置Editor只有在单元格进入编辑状态才能显示ComboBox

回答3:fpSpread1.Sheets[0].ActiveCell可以去到当前(也可以说成最后)一个活动的单元格。
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-7-31 12:21:00
12#

回复 11# Zera 的帖子

不好意思,又有新问题了 版主 :X  
1.拿9楼你举的那个例子来说 。如果我从数据库里取出的学生号是3,在ItemData里的索引值就是2,怎么能把这个索引值赋给Combox,从Item中取出相应的学生名(ABBC)在画面上显示呢?有类似于SelectedIndex这样的属性吗?我现在用SetEditorValue没起作用。。。
2.CellType和Editor有什么区别呢?
3.如果快速的取得一个Sheet中最后一个活动的单元格呢?

以上,拜托了
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-7-28 10:10:00
11#
刚好昨天在,顺便就回了,哈哈
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-7-28 10:07:00
10#
没想到那么晚您还回帖子,很感谢,泪流满面:<
这个比我想要实现的功能强大,超过了客户的预期。
代码收下了,真的很感谢。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-7-27 21:26:00
9#
不知道你是否想实现自动匹配的功能,下面代码可以在输入的时候自动匹配,ComboBox的数据源可能和你设置的不太一样,你可以修改一下:

  1.             FarPoint.Win.Spread.CellType.ComboBoxCellType combo = new FarPoint.Win.Spread.CellType.ComboBoxCellType();

  2.             string[] cbstr;
  3.             cbstr = new String[] { "AAA", "AABC", "ABBC","BBB","BBC","BCC" };
  4.             string[] strval;
  5.             strval = new String[] { "1", "2", "3", "4", "5", "6" };
  6.             
  7.             combo.Items = cbstr;
  8.             combo.ItemData = strval;
  9.             combo.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
  10.             combo.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
  11.             combo.AutoCompleteSource = AutoCompleteSource.ListItems;
  12.             combo.Editable = true;
  13.             fpSpread1.Sheets[0].Cells[0, 0].CellType = combo;
复制代码
回复 使用道具 举报
malimalihong
论坛元老   /  发表于:2011-7-27 21:05:00
8#

回复 7# Zera 的帖子

我具体的应用是这样的:
比如有从数据库取出学号 + “ ”+ 学生名,绑定给这个ComBox
在这个ComBox里输入学号,我就要找出对应的学号 + “ ”+ 学生名

我现在是EditModeOff事件里,遍历这个ComBox的Item。还有更简便的方法吗?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-7-27 16:57:00
7#
是的,设置Editable = True可以编辑ComboBox显示的文字
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部