Devexpress TreeList - 当它被设置为只读时,如何从单元格中删除值

时间:2014-01-30 05:45:53

标签: c# devexpress xtratreelist

我正在使用devexpress TreeList控件。在Treelist中我的情况是我的一个专栏是只读的。当另一个单元格中发生某些事件时,此列可能会添加一些文本值。我通过设置这样的属性来限制单元格中的用户输入

    treeList1.Columns["col3"].OptionsColumn.ReadOnly = true;

现在我想从一些单元格中删除文本值,因为只读取删除按钮不起作用。你能建议事件/方法和允许用户删除文本的代码吗? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

已编辑的解决方案:

你应该知道,当光标在单元格中时(在编辑模式下),按下按钮,TreeList发送KeyDown事件的人不是RepositoryItemButtonEdit,而是RepositoryItemButtonEdit }。因此,您还应该为onKeyDown处理该事件。

为了不重复代码,我写了一个处理程序“treeList1.KeyDown += onKeyDown; riButtonEdit.KeyDown += onKeyDown; ”,我确认谁是发件人。

KeyDown

这是一个代码示例,向您展示如何处理treeListrepositoryButtonEdit的{​​{1}}事件,并将单元格值设置为null

private void onKeyDown(object sender, KeyEventArgs e)
{
    // Test if the button pressed is the delete button
    if (e.KeyCode != Keys.Delete)
        return;

    // Test if the focused column is colValue
    if (treeList1.FocusedColumn != colValue)
        return;

    // Set the cell value to null
    treeList1.FocusedNode.SetValue(colValue, null);

    // If it's the ButtonEdit who send the event, make it's EditValue null
    var btnEdit = sender as ButtonEdit;
    if (btnEdit != null)
    {
        btnEdit.EditValue = null;
    }
}