如何创建 OneNote 2010 分区 [英] How to create OneNote 2010 section

查看:53
本文介绍了如何创建 OneNote 2010 分区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用 c# 在 OneNote 2010 笔记本中创建新分区?根据 API 没有这样做的方法.但是有一个 CreateNewPage 方法,所以我想知道部分是否有类似的东西?如果没有,除了操作 XML 文件(这是我想避免的任务,因为我没有这方面的经验)之外,如何实现?

How can you create a new section in a OneNote 2010 notebook with c#? According to the API there is no method to do so. But there is a CreateNewPage Method so I wondering if there is something similiar for sections? If not, how can this be achieved except for manipulating the XML files (which is a task i'd like to avoid since I'm not experienced in it)?

推荐答案

这是我添加的代码片段:

Here is code snippet from my add on:

public bool AddNewSection(string SectionTitle, out string newSectionId)
        {
            try
            {
                string CurrParentId;
                string CurrParentName;
                string strPath;
                CurrParentId = FindCurrentlyViewedSectionGroup(out CurrParentName);
                if (string.IsNullOrWhiteSpace(CurrParentId) || string.IsNullOrWhiteSpace(CurrParentName))
                {
                    CurrParentId = FindCurrentlyViewedNotebook(out CurrParentName);
                    if (string.IsNullOrWhiteSpace(CurrParentId) || string.IsNullOrWhiteSpace(CurrParentName))
                    {
                        newSectionId = string.Empty;
                        return false;
                    }
                    strPath = FindCurrentlyViewedItemPath("Notebook");
                }
                else
                    strPath = FindCurrentlyViewedItemPath("SectionGroup");

                if (string.IsNullOrWhiteSpace(strPath))
                {
                    newSectionId = string.Empty;
                    return false;
                }

                SectionTitle = SectionTitle.Replace(':', '\\');
                SectionTitle = SectionTitle.Trim('\\');
                strPath += "\\" + SectionTitle + ".one";
                onApp.OpenHierarchy(strPath, null, out newSectionId, Microsoft.Office.Interop.OneNote.CreateFileType.cftSection);
                onApp.NavigateTo(newSectionId, "", false);
            }
            catch
            {
                newSectionId = string.Empty;
                return false;
            }
            return true;
        }

我在这里所做的基本上是获取当前查看 Section Group 或 Notebook 的路径,然后将新的 section 名称添加到该路径,然后调用 OpenHierarchy 方法.OpenHierarchy 创建一个提供标题的新部分并返回它的 id.

Basically what I am doing here is to get the path of currently viewing Section Group or Notebook and then adding new section name to that path and then calling OpenHierarchy method. OpenHierarchy creates a new section with title provided and returns it's id.

以下是我创建一个新部分并导航到它的位置:

Following is where I create a new section and Navigate to it:

onApp.OpenHierarchy(strPath, null, out newSectionId, Microsoft.Office.Interop.OneNote.CreateFileType.cftSection);
onApp.NavigateTo(newSectionId, "", false);

所以可以这样写:

static void CreateNewSectionMeetingsInWorkNotebook()
    {
        String strID;
        OneNote.Application onApplication = new OneNote.Application();
        onApplication.OpenHierarchy("C:\\Documents and Settings\\user\\My Documents\\OneNote Notebooks\\Work\\Meetings.one", 
        System.String.Empty, out strID, OneNote.CreateFileType.cftSection);
    }

这篇关于如何创建 OneNote 2010 分区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆