有时候后台默认的勾选TreeView中的项不能影响用户手动的勾选时,就需要判断TreeView中的项是否手动勾选的,为此,C#提供了以下的枚举:
TreeViewEventArgs事件对象中提供了TreeViewAction枚举的属性,此属性记录了由什么操作引发的事件。
枚举定义如下:
//
// 摘要:
// 指定引发 System.Windows.Forms.TreeViewEventArgs 事件的操作。
public enum TreeViewAction
{
//
// 摘要:
// 引发此事件的操作未知。
Unknown = 0,
//
// 摘要:
// 此事件由按键操作引发。
ByKeyboard = 1,
//
// 摘要:
// 此事件由鼠标操作引发。
ByMouse = 2,
//
// 摘要:
// 此事件由 System.Windows.Forms.TreeNode 折叠操作引发。
Collapse = 3,
//
// 摘要:
// 此事件由 System.Windows.Forms.TreeNode 展开操作引发。
Expand = 4
}
实例:
List c_SelectedTN = new List();
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.ByMouse)
{
if (e.Node.Checked)
{
c_SelectedTN.Add(e.Node);
}
else
c_SelectedTN.Remove(e.Node);
}
}