C #: Cómo evitar que se realice la comprobación TreeNode en un evento de doble clic

Así que tengo un TreeView en una aplicación de formulario de Windows C #. Lo que necesito es que algunos nodos estén "bloqueados" para que no se puedan verificar (o desmarcar), según un parámetro.

Lo que estoy haciendo ahora es esto:

private void tv_local_BeforeCheck(object sender, TreeViewCancelEventArgs e) {
    TNode node = (TNode)e.Node;
    //if a part node, cancel the action.
    if (node.Type == "Part") {
        e.Cancel = true;     
    }
    //if a locked node, cancel the action
    if (node.Locked == true) {
        e.Cancel = true;
    }
}

Este código funciona muy bien con un solo clic en la casilla de verificación, pero si el usuario hace doble clic en una casilla de verificación, aún marca / desmarca.

He intentado jugar con el evento nodeMouseDoubleClick, pero eso realmente no ayuda, ya que no puedo cancelar el evento ...

¿Hay alguna idea sobre cómo cancelar un evento de doble clic en un nodo? ... ¿o algo más? Gracia