Obter lista de todos os nós verificados e seus subnós na visualização em árvore

Eu tenho as caixas de seleção de uma lista de árvores e a lista contém nós, subnós e, em alguns casos, subnó do subnó. Quando o usuário verifica alguns itens, quero obter uma lista dos itens selecionados.

Por isso, recebo apenas itens selecionados do nó principal:

 foreach (System.Windows.Forms.TreeNode aNode in tvSastavnica.Nodes)
        {
            if (aNode.Checked == true)
            {
                Console.WriteLine(aNode.Text);
            }
        }

Como percorrer toda a árvore e obter itens verificados nos subnós?

questionAnswers(3)

yourAnswerToTheQuestion