找回密码
 立即注册

QQ登录

只需一步,快速开始

liuyunan

注册会员

8

主题

41

帖子

161

积分

注册会员

积分
161

微信认证勋章

[已处理] Spread内嵌Combobox

liuyunan
注册会员   /  发表于:2017-10-31 15:21  /   查看:11473  /  回复:22
spread单元格内内嵌ComboBox,当按下Tab或者Enter遍历单元格时,目前的效果是: image.png315840148.png ,想要的效果是,遍历的时候文字全选: image.png369678649.png ,如何实现?

22 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-31 17:32:20
推荐
想要选中单元格后直接进入编辑状态?

        private void FpSpread1_EnterCell(object sender, FarPoint.Win.Spread.EnterCellEventArgs e)
        {
            if (fpSpread1.ActiveSheet.Cells[e.Row, e.Column].CellType is FarPoint.Win.Spread.CellType.ComboBoxCellType)
            {
                fpSpread1.EditMode = true;
            }
        }
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-10-31 19:03:15
板凳
dexteryao 发表于 2017-10-31 17:32
想要选中单元格后直接进入编辑状态?

        private void FpSpread1_EnterCell(object sender, FarPoi ...

我在spread1的advance事件中写了spread2.EditMode = True ,advance是让spread1遍历完后跳到spread2中去。代码如下:
Private Sub spread1_Advance(sender As Object, e As FarPoint.Win.Spread.AdvanceEventArgs) Handles spreRestCenter.Advance
        If e.AdvanceNext = True Then
            spread2.Focus()
            spread2.EditMode = True         
        End If
    End Sub
但是这样不起作用。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-1 10:39:42
地板
这是另外一个问题吗?

您现在你有测试我给您的代码吗
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-11-1 10:41:27
5#
dexteryao 发表于 2017-11-1 10:39
这是另外一个问题吗?

您现在你有测试我给您的代码吗

不是另外一个问题,我就是想说我有吧editMode设置成true,只不过是在别的事件里面,想问你效果是不是一样
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-1 16:16:27
6#
不一样的,有关焦点切换会影响到EditMode。你可以让sp2 在获取焦点进入编辑
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-11-1 21:14:14
7#
我怀疑是我设置的skin没设置成功,设置完skin样式之后,点应用,没跑起来之前,画面显示是这个样子:
image.png51995238.png
等跑起来之后,又回到了原先的classic主题,如图:
image.png326384276.png
是不是工程中那些地方将skin就固定为classic了?
我记得之前自己设置过,具体在哪设置的给忘了。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-2 08:59:36
8#
自定义皮肤首先要创建文件夹并且给足够的权限
image.png376657714.png
或者通过代码修改


  1.             FarPoint.Win.Spread.CellType.FlatColumnHeaderRenderer flatcolumnheader = new FarPoint.Win.Spread.CellType.FlatColumnHeaderRenderer();
  2.             flatcolumnheader.ActiveForeColor = Color.Red;
  3.             fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Renderer = flatcolumnheader;
复制代码
回复 使用道具 举报
liuyunan
注册会员   /  发表于:2017-11-3 10:49:54
9#

private void FpSpread1_EnterCell(object sender, FarPoint.Win.Spread.EnterCellEventArgs e)
        {
            if (fpSpread1.ActiveSheet.Cells[e.Row, e.Column].CellType is

FarPoint.Win.Spread.CellType.ComboBoxCellType)
            {
                fpSpread1.EditMode = true;
            }
        }
关于这个代码,我在vb.net 中写的时候报错。
image.png466479186.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-3 10:58:50
10#
这段代码的意思是判断CellType 的类型是不是 ComboBoxCellType。 您看看VB net对应的语法是什么。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部