/// <summary> /// Получает курсор на указанный дочерний элемент /// </summary> /// <param name="root">Родитель</param> /// <param name="command">Команда курсора</param> /// <returns>Курсор</returns> private Tree GetElementCursor(Tree root, string command) { if (!root.HasChild()) return null; Tree cursor = root.GetChildById(0); while (cursor.command != command && cursor.next != null) cursor = cursor.next; if (cursor.command != command) return null; return cursor; }
/// <summary> /// Ищет ребёнка у курсора /// </summary> /// <param name="cursor">Курсор</param> /// <param name="child_id">Номер, с которого нужно начинать поиск</param> /// <returns>Курсор</returns> private Tree FindChildCursor(Tree cursor, int child_id = 0) { if (cursor.GetChildCount() > child_id) cursor = cursor.GetChildById(child_id); if (cursor.ignore_enter && cursor.HasChild()) cursor = FindChildCursor(cursor); return cursor; }