|
■No45248 (初心者 さん) に返信
> どのようにすれば出来るのでしょうか?
こうかな。
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
foreach (TreeNode node in e.Node.Nodes) node.Checked = e.Node.Checked;
}
> チェックボックスつきのTreeViewを作っているのですが
念のために確認。たとえば、
--------------------
[_]項目1
┣[_]項目1-1
┃┣[_]項目1-1-1
┃┣[_]項目1-1-2
┃┗[_]項目1-1-3
┗[_]項目1-2
┣[_]項目1-2-1
┗[_]項目1-2-2
--------------------
という階層があった場合、
> 親アイテムのチェックが付いたとき、子アイテム全てにチェックがつく。
> 親アイテムのチェックが外れた時、子アイテム全てにチェックがはずれるように
この条件に合わせると、
(1) 項目1-1にチェックを付ける。
(2) 1-1-1、1-1-2、1-1-3 にもチェックが入る。
という動作になるかと思います。つまり、
「1-1 がチェックされており、1-1の子要素がすべてチェックされている」
という状態ですね。
では、さらにその後で、
(3) 1-1-1、1-1-2、1-1-3 のチェックを外す。
という操作を行うと、
「1-1 はチェックされているにも関わらず、1-1の子要素は何もチェックされていない」
という状態になりえますが、それで問題は無いのですよね?
|