SM-张丹红 发表于 2023-5-11 11:51:17

GcComboBox 获取选择项的SubItem的值

Dim cmbocell As New GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType()
Dim listitem As New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo
listitem.Text = "ァイル移送"
listitem.SubItems.Add("0")
cmbocell.Items.Add(listitem)
listitem = New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo
listitem.Text = "定数"
listitem.SubItems.Add("1")
cmbocell.Items.Add(listitem)

SPD.Cells(0, 5).CellType = cmbocell

1.上述CellType设定后,在另外一个Button按下后,如何取得选择项的SubItem的值?
2.如何取得SPD.Cells(0, 5)中的控件?也就是取得GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxEditingControl类型的控件。

拜托。



Richard.Ma 发表于 2023-5-11 14:40:11

和你设置的时候是一样的,SPD.Cells(0, 5).CellType获取到的就是这个celltype

下面提供的是C#代码,对应的vb代码你可以看一下怎么写

GcComboBoxCellTypecombo=fpSpread1.ActiveSheet.Cells.CellType as GcComboBoxCellType

SM-张丹红 发表于 2023-5-11 20:32:02

本帖最后由 SM-张丹红 于 2023-5-11 20:38 编辑


谢谢版主回答,但是没有解决我的问题,通过celltype取出来的对象是GcComboBoxCellType,是无法取得SelectedItem,我再贴一张图片上来,红色为CellType编译不过的地方。
蓝色是在EditChange事件中通过EditControl能够拿到GcComboBox控件,能够获取到SelectedItem的,但我的处理是在其他地方需要遍历Grid中的GcComboBox列,获取到每个单元格选择了的Item。
麻烦版主再帮我看看,谢谢了。


Richard.Ma 发表于 2023-5-12 09:26:47

明白了,可以这样试试

            var cbx = fpSpread1.ActiveSheet.Cells.CellType as GcComboBoxCellType;
            var ctl = cbx.GetEditorControl(new FarPoint.Win.Spread.Appearance(), 1) as GcComboBoxEditingControl;

SM-张丹红 发表于 2023-5-15 09:50:16

Richard.Ma 发表于 2023-5-12 09:26
明白了,可以这样试试

感谢版主,comboBox控件已经可以正常取得了。
但是,给SelectedValue赋值后,comboBox的选择项目没有变化,感觉是Spread刷新,下面是我设置的代码,麻烦版主帮忙给指导。

Dim ctl As GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxEditingControl = cbx.GetEditorControl(New FarPoint.Win.Spread.Appearance(), 1)

      ctl.TextSubItemIndex = 0
      ctl.ValueSubItemIndex = 1
      ctl.SelectedValue = setVal

Richard.Ma 发表于 2023-5-15 10:18:24

这个就不确定了,因为实际上编辑器本身就是在进入编辑状态时,才初始化出来的,

换句话说目前获取到的这个ctl实际上可能并不是编辑时真实的ctl,这块没法给你提供更多的帮助了
页: [1]
查看完整版本: GcComboBox 获取选择项的SubItem的值