找回密码
 立即注册

QQ登录

只需一步,快速开始

haomi20032003

初级会员

29

主题

92

帖子

293

积分

初级会员

积分
293
haomi20032003
初级会员   /  发表于:2019-3-23 14:34  /   查看:3693  /  回复:5
MultiColumnComboBoxCellType中列能不能使用enhancedcontextmenu?datatable中有三列,能不能下拉时候隐藏一行?谢谢
ida.png

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-3-25 12:23:53
沙发
您好,您说的需求现在都不支持,控件现在没有暴露接口设置Column信息。列宽等属性都死自动的。
回复 使用道具 举报
haomi20032003
初级会员   /  发表于:2019-3-25 16:04:47
板凳
额,好,谢谢版主
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-3-26 09:22:21
地板

找到一个变通的方法

实际上下拉框里还是个spread,拿到spread去隐藏对应column即可


        private void FpSpread1_SubEditorOpening(object sender, SubEditorOpeningEventArgs e)
        {
            if (fpSpread1.ActiveSheet.Cells[e.Row, e.Column].CellType is MultiColumnComboBoxCellType)
            {
                var subEditor = e.SubEditor as FarPoint.Win.Spread.FpSpread;
                subEditor.ActiveSheet.Columns[0].Visible = false;
            }
        }
回复 使用道具 举报
haomi20032003
初级会员   /  发表于:2019-9-1 15:34:12
5#
dexteryao 发表于 2019-3-26 09:22
找到一个变通的方法

实际上下拉框里还是个spread,拿到spread去隐藏对应column即可

谢谢,问题解决了,不过貌似需要把subeditor指向原来的单元格,最终代码为(列宽的调整也放里面了)
    Private Sub Fptag_SubEditorOpening(sender As Object, e As SubEditorOpeningEventArgs) Handles Fptag.SubEditorOpening
        If Fptag.ActiveSheet.Cells(e.Row, e.Column).CellType.ToString = "MultiColumnComboBoxCellType" Then
            Dim subEditor As FarPoint.Win.Spread.FpSpread = e.SubEditor
            subEditor.ActiveSheet.Columns(subEditor.ActiveSheet.Columns.Count - 1).Width = 0
            For i = 0 To subEditor.ActiveSheet.NonEmptyColumnCount - 2
                subEditor.ActiveSheet.ColumnHeader.Cells(0, i).Renderer = err
                Dim s = subEditor.ActiveSheet.Columns(i).GetPreferredWidth
                Dim s2 = subEditor.ActiveSheet.ColumnHeader.Columns(i).Width
                If s > s2 Then
                    subEditor.ActiveSheet.Columns(i).Width = s + 1
                Else
                    subEditor.ActiveSheet.Columns(i).Width = s2 + 1
                End If
            Next
            Fptag.ActiveSheet.Cells(e.Row, e.Column).CellType = subEditor.ActiveSheet.ActiveCell.CellType
        End If
    End Sub
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-2 10:50:24
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部