【问题标题】:CS1061: 'Bookmarks' does not contain a definition for 'Item'CS1061:“书签”不包含“项目”的定义
【发布时间】:2021-07-03 13:14:00
【问题描述】:

我正在尝试为连锁信编写应用程序。

这是我的模板:https://docs.microsoft.com/en-us/previous-versions/office/troubleshoot/office-developer/automate-word-create-file-using-visual-c

这是我的代码:https://github.com/440z/2021-07-01_WindowsFormsAppFuerKettenBriefMitWord

文件Form1.cs第171行出现错误。

Word._Document oDoc;
// ...
object oBookMark = "MyBookmark";
oDoc.Bookmarks.Item(ref oBookMark).Range.Text = "Some Text Here"; // L171

错误 CS1061:“书签”不包含“项目”的定义,并且找不到接受“书签”类型的第一个参数的可访问扩展方法“项目”(您是否缺少 using 指令或程序集引用? )

我设置了一个 using 指令,并在模板中描述了一个程序集引用。


添加对 Microsoft Word 对象库的引用。为此,请按照下列步骤操作: 在项目菜单上,单击添加引用。 在 COM 选项卡上,找到 Microsoft Word 对象库,然后单击选择。

使用 Word = Microsoft.Office.Interop.Word;

使用 System.Reflection;


我就是不明白!!!

【问题讨论】:

  • 欢迎来到 StackOverflow!请阅读How to Ask。特别是,请确保您的问题包含理解它所需的所有信息。人们不会去点击 GitHub 上的整个项目来了解问题所在,而是您的问题应该包括一个小的 minimal reproducible example。请edit您的问题符合准则,否则您可能不会得到任何答案,并且您可能会被否决和/或关闭
  • 一目了然:您的意思是写Bookmarks.get_Item(ref oBookMark)而不是Bookmarks.Item(ref oBookMark)
  • 这是一个索引器吗?即oDoc.Bookmarks[ref oBookMark]...? (有或没有ref,无论编译) - 编辑:看起来可能是:docs.microsoft.com/en-us/dotnet/api/…

标签: c# .net forms ms-word


【解决方案1】:

看起来Bookmarks 有一个索引器,所以:试试其中一个

oDoc.Bookmark[ref oBookMark].Range.Text = "Some Text Here";

oDoc.Bookmark[oBookMark].Range.Text = "Some Text Here";

但是,我预计现在抱怨您正在尝试访问无效的密钥,这意味着:"MyBookmark" 没有现有的书签键

【讨论】:

  • @HisDudeness 您应该能够代替所有 get_Item 用法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 2023-03-20
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-31
相关资源
最近更新 更多