作成日: 2021/04/01 最終更新日: 2021/04/01
文書種別
使用方法
詳細
TreeViewコントロールでは、CheckBoxesプロパティをTrueに設定することで、ノードの横にチェックボックスを表示することができます。
このとき、CheckStateChangedイベントを使用し、親に追加されているすべての子や孫のNodeをループして、そのCheckedプロパティを親ノードのチェック状態と同じに設定します。これにより、親ノードのチェックのON/OFF切り替えで、その子や孫ノードのチェックも一括して切り替えることができます。
◎サンプルコード(VB)
このとき、CheckStateChangedイベントを使用し、親に追加されているすべての子や孫のNodeをループして、そのCheckedプロパティを親ノードのチェック状態と同じに設定します。これにより、親ノードのチェックのON/OFF切り替えで、その子や孫ノードのチェックも一括して切り替えることができます。
◎サンプルコード(VB)
Private Sub C1TreeView1_CheckStateChanged(sender As Object, e As C1TreeViewEventArgs) Handles C1TreeView1.CheckStateChanged
' 親ノードのチェックで、すべての子・孫ノードのON/OFFを切り替え
If (e.Node.Level = 0) And (e.Node.HasChildren = True) Then
Dim i As Integer = 0
For i = 0 To e.Node.Nodes.Count - 1
e.Node.Nodes(i).Checked = e.Node.Checked
If (e.Node.Nodes(i).HasChildren = True) Then
Dim j As Integer = 0
For j = 0 To e.Node.Nodes(i).Nodes.Count - 1
e.Node.Nodes(i).Nodes(j).Checked = e.Node.Checked
Next
End If
Next
End If
End Sub
◎サンプルコード(C#) private void c1TreeView1_CheckStateChanged(object sender, C1TreeViewEventArgs e)
{
// 親ノードのチェックで、すべての子・孫ノードのON/OFFを切り替え
if (e.Node.Level == 0 && e.Node.HasChildren == true)
{
for (int i = 0; i < e.Node.Nodes.Count; i++)
{
e.Node.Nodes[i].Checked = e.Node.Checked;
if (e.Node.Nodes[i].HasChildren == true)
{
for (int j = 0; j < e.Node.Nodes[i].Nodes.Count; j++)
{
e.Node.Nodes[i].Nodes[j].Checked = e.Node.Checked;
}
}
}
}
}
関連情報
旧文書番号
86531