找回密码
 立即注册

QQ登录

只需一步,快速开始

guoqp

高级会员

201

主题

770

帖子

1883

积分

高级会员

积分
1883

时代开发者征文活动

guoqp
高级会员   /  发表于:2021-1-18 17:30  /   查看:2257  /  回复:3
1金币
需求如下:

当鼠标点击某个单元格后,设置该单元格类型为下拉框进行选择(要能自动展开,不要点击2次),当焦点发生变更或者活动单元格发生变更后原单元格恢复正常正常文本显示,并设置其值为刚才下拉框选择的值.

我在EnterCell事件中完成了单元格类型设置,但却不知道如何恢复并完成值传递,请教下如何实现?
private void fpSpread1_EnterCell(object sender, EnterCellEventArgs e)
        {
            FarPoint.Win.Spread.CellType.ComboBoxCellType cmb = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
            ListBox lb = new ListBox();
            lb.Items.Add("办公设备");
            lb.Items.Add("IT设备");
            lb.Items.Add("其它设备");
            cmb.ListControl = lb;
            fpSpread1.Sheets[0].Cells[e.Row, e.Column].CellType = cmb;
        }

3 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-18 17:47:06
沙发
您好,问题已收到,预计最迟明天下午会给您答复,谢谢~
回复 使用道具 举报
guoqp
高级会员   /  发表于:2021-1-19 09:39:06
板凳
顺便问下如何用代码新增行、列?
比如初始只有表头,没有数据行,使用代码加载数据,增加一行,再进行填充之类。

如何取控件列的值?如第一列为COMBOBOX列,第二列为CHECKBOX列,我要取这些列的值进行判断应该怎么做?

怎么设置多行表头?

怎么用代码添加SHEET并来回切换?

如何进行表格之间联动?比如当某个单元格输入某个值后,指定某区域的单元格数据进行联动更新

这些问题都比较基础,我是新手,就一起问了吧,主要现在提供的帮助文件是英文的,看起来比较费劲,麻烦你们了,感谢!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-1-19 10:26:58
地板
1只需要在LeaveCell事件中更改单元格类型为文本型即可
  1.         private void FpSpread1_LeaveCell1(object sender, LeaveCellEventArgs e)
  2.         {
  3.             fpSpread1.Sheets[0].Cells[e.Row, e.Column].CellType = new TextCellType();
  4.         }
复制代码

2建议还是每个问题单独发帖提问,也方便其他的用户搜索和查看,
以下是问题的解决代码

顺便问下如何用代码新增行、列?
直接设置行列数即可比如
  1. fpSpread1.ActiveSheet.Rows.Count=10
复制代码



如何取控件列的值?如第一列为COMBOBOX列,第二列为CHECKBOX列,我要取这些列的值进行判断应该怎么做?
你说的应该还是获取单元格存储的值,这个和单元格类型无关,可以直接用Value属性获取即可
  1. fpSpread1.ActiveSheet.Cells[5, 2].Value
复制代码


怎么设置多行表头?
  1.             fpSpread1.Sheets[0].RowHeaderColumnCount = 2;
  2.             fpSpread1.Sheets[0].AddRowHeaderSpanCell(0, 0, 5, 1);
  3.             fpSpread1.Sheets[0].RowHeader.Cells[0, 0].Text = "合并行头";
复制代码



怎么用代码添加SHEET并来回切换?
  1. fpSpread1.Sheets.Add(new SheetView("新建表"));
复制代码



如何进行表格之间联动?比如当某个单元格输入某个值后,指定某区域的单元格数据进行联动更新
可以通过fpSpread1.Change事件来判断并修改需要改变的单元格


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部