显示和隐藏编辑器
通过调用 TreeList.ShowEditor 方法,可以调用获得焦点的单元格的编辑器。 因此,如果需要编辑特定的单元格,则首先必须为它设置焦点。 如果需要以程序方式关闭编辑器,则可以使用两种方法:
- TreeList.CloseEditor —— 隐藏编辑器,保存所作出的更改。
- TreeList.HideEditor —— 隐藏编辑器,并放弃所作出的更改。
也可以使用树状列表的 TreeList.PostEditor 方法保存所作出的更改而不关闭编辑器。
每当编辑器被最终用户或以程序方式激活或关闭时,XtraTreeList 控件也允许执行操作。 分别通过接管 TreeList.ShownEditor 和 TreeList.HiddenEditor 事件来完成操作。 第一个事件可以用于辅助编辑器自身的工作 (例如,当 MemoExEdit 编辑器被激活时,可以打开它的弹出窗口)。 可以接管 TreeList.HiddenEditor 事件,在 TreeList.ShowEditor 事件处理程序已被执行之后执行任何必要的清理操作,或者当编辑器被关闭时执行其他操作。
注意,在下列情况中编辑器不能被调用:
- 树状列表的 TreeListOptionsBehavior.Editable 选项被禁用;
- TreeList.ShowingEditor 事件处理程序阻止编辑单元格。
示例
下面的示例展示了当内置编辑器被激活和关闭时,如何改变获得焦点的节点的状态图像。 为了对激活和关闭内置编辑器作出响应,接管了 TreeList.ShownEditor 和 TreeList.HiddenEditor 事件。 TreeList.CellValueChanged 事件被接管,从而改变节点的选中图像,以便于指明节点单元格的取值被最终用户修改。
下面的插图展示了运行结果。
C# | 复制代码 |
---|---|
using DevExpress.XtraTreeList; private void treeList1_ShownEditor(object sender, System.EventArgs e) { TreeList tlist = sender as TreeList; tlist.FocusedNode.StateImageIndex = 0; } private void treeList1_HiddenEditor(object sender, System.EventArgs e) { TreeList tlist = sender as TreeList; tlist.FocusedNode.StateImageIndex = -1; } private void treeList1_CellValueChanged(object sender, DevExpress.XtraTreeList.CellValueChangedEventArgs e) { e.Node.SelectImageIndex = 1; e.Node.ImageIndex = 1; } |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.XtraTreeList Private Sub TreeList1_ShownEditor(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeList1.ShownEditor Dim tlist As TreeList = CType(sender, TreeList) tlist.FocusedNode.StateImageIndex = 0 End Sub Private Sub TreeList1_HiddenEditor(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeList1.HiddenEditor Dim tlist As TreeList = CType(sender, TreeList) tlist.FocusedNode.StateImageIndex = -1 End Sub Private Sub TreeList1_CellValueChanged(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.CellValueChangedEventArgs) Handles TreeList1.CellValueChanged e.Node.SelectImageIndex = 1 e.Node.ImageIndex = 1 End Sub |