您好我正在尝试检查TreeView中的子复选框,如下所示:
Register-ObjectEvent -InputObject $treeView -EventName AfterCheck -Action {
$e = [System.Windows.Forms.TreeViewEventArgs]$EventArgs
if($e.Action -ne [System.Windows.Forms.TreeViewAction]::Unknown)
{
foreach($childNode in $e.Node.Nodes)
{
([System.Windows.Forms.TreeNode]$childNode).Checked = $true
}
}
} | Out-Null
其实确实正确设置了" Checked" property属于true,但是tick不会显示在表单上。我也尝试过设置TreeViewNode文本并体验相同的结果。我已经检查了.NET对象上的哈希值,认为事件处理程序是从一个单独的运行空间触发或者使用对象的副本,但事实并非如此。
关于表单为什么不在处理程序内显示对象的更改的任何想法?我的表单的加载处理程序能够正确填充TreeView,那么为什么我无法从AfterCheck处理程序中修改它呢?
谢谢!