【问题标题】:Cell in Devexpress Treelist is set to editable yet it won't let me editDevexpress Treelist 中的单元格设置为可编辑,但它不允许我编辑
【发布时间】:2011-07-18 16:25:42
【问题描述】:

我在 Visual Studio 2008 的 VB.Net 项目中使用 DevExpress (10.2) 树列表。我目前有一个带有 TreeList.OptionsBehavior.Editable = True 的树列表。我有两列,第一列是AllowEdit = False。第二列我通过动作FocusedNodeChanged动态设置AllowEditReadOnly

FocusedNodeChange 子例程中,我检查行中是否有特定值,如果是,我将其设置为可编辑或不可编辑。我将其设置为可编辑:

treeList.Columns("field_name").OptionsColumn.ReadOnly = False
treeList.Columns("field_name").OptionsColumn.AllowEdit = True

并将其设置为只读:

treeList.Columns("field_name").OptionsColumn.ReadOnly = True
treeList.Columns("field_name").OptionsColumn.AllowEdit = False

这在一定程度上有效。现在,如果我进入树形列表中的可编辑单元格,光标会出现并闪烁,所以我知道它是可编辑的,如果我在不可编辑行被聚焦时进入单元格,光标不会闪烁。

但是,即使光标闪烁,我也无法输入。当我点击键盘上的键(数字和字母)时,什么也没有写出来。

已解决

简单的解决方案。我用来将数据提取到表中的存储过程不包含我试图使其可编辑和不可编辑的特定列的字段。这是因为它是一个新值,它的插入/更新方式与正常情况不同。为了解决这个问题,我获取了 null 和/或 0,它运行良好。

【问题讨论】:

    标签: vb.net visual-studio-2008 devexpress


    【解决方案1】:

    您使用的代码不太正确。最好的解决方案是处理 TreeList 的 ShowingEditor 事件并相应地设置 e.Cancel 参数。要确定当前单元格,请使用 TreeList 的 FocusedColumn 和 FocusedNode 属性。

    【讨论】:

    • 我删除了 FocusedNodeChange 并按照您在 ShowingEditor 事件中所说的做了,但我遇到了同样的问题。在我可以编辑的行中,我看到闪烁的光标并且无法输入。在我不想编辑的行中,我无法输入,也看不到闪烁的光标。
    • 处理ShowingEditor事件,通过e.Cancel参数控制单元格的编辑。您不应更改列的 ReadOnly 和 AllowEdit 属性。这应该有效。
    猜你喜欢
    • 2012-04-07
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    相关资源
    最近更新 更多