我正在使用devexpress TreeList控件。在Treelist中我的情况是我的一个专栏是只读的。当另一个单元格中发生某些事件时,此列可能会添加一些文本值。我通过设置这样的属性来限制单元格中的用户输入
treeList1.Columns["col3"].OptionsColumn.ReadOnly = true;
现在我想从一些单元格中删除文本值,因为只读取删除按钮不起作用。你能建议事件/方法和允许用户删除文本的代码吗? 任何帮助将不胜感激。
答案 0 :(得分:0)
已编辑的解决方案:
你应该知道,当光标在单元格中时(在编辑模式下),按下按钮,TreeList
发送KeyDown
事件的人不是RepositoryItemButtonEdit
,而是RepositoryItemButtonEdit
}。因此,您还应该为onKeyDown
处理该事件。
为了不重复代码,我写了一个处理程序“treeList1.KeyDown += onKeyDown;
riButtonEdit.KeyDown += onKeyDown;
”,我确认谁是发件人。
KeyDown
这是一个代码示例,向您展示如何处理treeList
和repositoryButtonEdit
的{{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;
}
}