Vale escribi el problema demasiado pronto xD, ya lo solucione =P
Os dejo aki el codigo por si alguien lo necesita.
Dew!
private void Variables_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Checked == true)
{
e.Node.Expand();
for (int i = 0; i < e.Node.Nodes.Count; i++)
{
e.Node.Nodes.Checked = true;
}
}
else
{
for (int i = 0; i < e.Node.Nodes.Count; i++)
{
e.Node.Nodes.Checked = false;
}
}
}