找回密码
 立即注册

QQ登录

只需一步,快速开始

zhaozimingT

高级会员

38

主题

207

帖子

1284

积分

高级会员

积分
1284
zhaozimingT
高级会员   /  发表于:2016-8-26 16:46  /   查看:6562  /  回复:10
ComboBoxCellType  绑定的下拉项中不支持 Value和Text 方式?即 :显示值,隐藏值

目前看到只能绑定一个字符串

10 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-26 17:11:12
沙发
可以key value
  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;
复制代码
回复 使用道具 举报
zhaozimingT
高级会员   /  发表于:2016-8-26 17:40:13
板凳
ComboBoxCellType   的下拉图标是否可以点中单元格后才显示出下拉按钮,不要一直显示
回复 使用道具 举报
zhaozimingT
高级会员   /  发表于:2016-8-28 17:27:57
地板
已解决,不用回复了,谢谢
回复 使用道具 举报
zhaozimingT
高级会员   /  发表于:2016-8-29 09:10:38
5#
      string[] cbstr;
      cbstr = new String[] {"One", "Two", "Three"};
      string[] strval;
      strval = new String[] {"1", "2", "3"};
      combo.Items = cbstr;
      combo.ItemData = strval;
      combo.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData;
      fpSpread1.Sheets[0].Cells[0, 0].CellType = combo;


按这个方式设置后, combox显示下拉我选择 某个item例:  One  后,界面上跳出来的不是 “One” 而是 “1” ,把值显示出来了,而不是text
回复 使用道具 举报
zhaozimingT
高级会员   /  发表于:2016-8-29 10:19:38
6#
看了下是因为我
fpSpread1_Sheet1.Cells[row, col].Renderer = null; 加了这句话的原因导致

不加又不能实现 像EXCEL一样 下拉框只在点击时才显示出来,不要一开始满屏都是下拉框 体验效果差
请问有什么好的办法吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-29 11:27:51
7#
这个是和Excel的一个差异,Excel的下来框其实是数据验证,Excel没有Combo的概念。
正常的Combo也都是一直显示按钮的。
这个没有属性可以隐藏掉。
如果要隐藏,需要重写 PaintCell 方法,重新绘制
回复 使用道具 举报
zhaozimingT
高级会员   /  发表于:2016-8-29 15:14:26
8#
PaintCell   ?? 有例子?能隐藏按钮的, 点击上去才出来按钮那种
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-29 15:36:01
9#
用背景色吧箭头盖掉
            var combo = new C_ComboBoxCellType();

  1.     public class C_ComboBoxCellType : ComboBoxCellType
  2.     {
  3.         public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
  4.         {
  5.             base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
  6.             
  7.             g.FillRectangle(new SolidBrush(appearance.BackColor), r.X + r.Width - 50, r.Y, 50, r.Height);
  8.         }
  9.     }
复制代码
回复 使用道具 举报
zhaozimingT
高级会员   /  发表于:2016-8-30 06:52:59
10#
恩可以, 但TextBox 出来效果不太对,按钮是隐藏了,但要双击才显示下下拉按钮,而combox单击就可以显示,操作习惯不一样,用户体验不好

   public class C_TextCellType : TextCellType
    {
        public C_TextCellType()
        {
            this.DropDownButton = true;
            this.SubEditor = new test.Form3_subeditor();
        }
        public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
        {
            base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);

          g.FillRectangle(new SolidBrush(appearance.BackColor), r.X + r.Width - 20, r.Y, 50, r.Height);
        }
    }
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部