找回密码
 立即注册

QQ登录

只需一步,快速开始

lzh3452
银牌会员   /  发表于:2012-4-11 15:32:00
7#

jpg

jpg


上面的是正常的状态,下面的是鼠标点击ComboBox之后的效果,ComboBoxCell是被Lock的。
这个一直在等客户的确认,今天才给结果,其实已经不需要Lock这一列了,不过还是觉得挺奇怪的。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-1 16:08:00
6#

回复 5# lzh3452 的帖子

lzh3452 你好,
不好意思,我没能理解你的 Case ,能提供设置之前和设置之后效果对比截图吗?
回复 使用道具 举报
lzh3452
银牌会员   /  发表于:2012-4-1 15:35:00
5#

回复 4# iceman 的帖子

这个好使了,不过有个新问题,我的Spread对于从DB中检索出来的数据,是不允许修改这一列,所以我为了不让用户修改,把这个Cell的Locked属性设为true了,结果只要用鼠标点击,这个Cell,SelectionColor就会消失,正行白色,这个Cell外面有虚线框这样的效果,这是什么原因呢?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-1 13:53:00
地板

回复 3# lzh3452 的帖子

lzh3452 你好,
只能通过 Text 或者 Value 赋值。请问你的 Case 是要从数据库中取得 Int 类型值,然后赋值给对应的 ComboBoxCellType ,然后显示不同的 Text 吗?
那么,可以通过 ComboBoxCellType 的 ItemsData 去对应 数据库中值(ToString)即可。示例代码:

  1. string[] cbstr;
  2.             cbstr = new String[] { "One", "Two", "Three" };

  3.             string[] strval;
  4.             strval = new String[] { "1", "2", "3" };

  5.             combo.Items = cbstr;

  6.             combo.ItemData = strval;

  7.             combo.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
  8.             fpSpread1.Sheets[0].Cells[0, 0].CellType = combo;
  9.             fpSpread1.Sheets[0].Cells[0, 0].Value = "2";
复制代码

2.ComboBoxCellType 下 Editable 可以设置其对应的单元格类型是否可编辑。
回复 使用道具 举报
lzh3452
银牌会员   /  发表于:2012-4-1 10:29:00
板凳

回复 2# iceman 的帖子

如果当前Cell并不在编辑呢?不就没有EditingControl了么!赋值的时候只能用Text么?不能用Index么?还有,我不想选择时进入编辑模式,好像是可以直接写内容似的,我希望就像普通的ComboBox那样选择,怎么设置?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-3-31 18:55:00
沙发

回复 1# lzh3452 的帖子

lzh3452 你好,
1.可以通过设置对应 Cell 的 Text 属性设置选择项。
2.可以通过 EditChange 事件获取相关属性。

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.CellType.ComboBoxCellType cmbocell1 = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
  4.             cmbocell1.Items = (new String[] { "January", "February", "March", "April", "May", "June" });
  5.             fpSpread1.Sheets[0].Cells[1, 1].CellType = cmbocell1;
  6.             this.fpSpread1.Sheets[0].Cells[1, 1].Text = "March";
  7.         }
  8.         private void fpSpread1_EditChange(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
  9.         {
  10.             string selectText = "";
  11.             int selectIndex = 0;
  12.             if (e.Column == 2 && e.Row == 2)
  13.             {
  14.                 FarPoint.Win.FpCombo test = e.EditingControl as FarPoint.Win.FpCombo;
  15.                 selectText = test.SelectedText;
  16.                 selectIndex = test.SelectedIndex;
  17.             }
  18.         }
复制代码
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部