阅读单词文档。使用 c#

发布于 2024-11-14 08:21:30 字数 526 浏览 1 评论 0原文

我已经创建了一个应用程序。富文本框中的文本存储在word doc中。使用Word互操作DLL。现在我想将单词 doc 读回到我的 Richtextbox 中。

我使用oDoc.Content.Text来阅读。它可以工作,但对齐不存在。我需要在单词文档中加载相同的配置。

我还使用了这段代码

oDoc.Activate();
oDoc.ActiveWindow.Selection.WholeStory();
oDoc.ActiveWindow.Selection.Copy()
IDataObject data = Clipboard.GetDataObject();
txtdocument.Text = Clipboard.GetDataObject()
       .GetData(DataFormats.Text).ToString();

但它抛出了这个错误:

未将对象引用设置为对象的实例。

I have created an application. The text in the rich textbox is stored in word doc. using word interop dll. Now i want to read the word doc back to my richtextbox.

I used oDoc.Content.Text to read. Its working but the alignment is not there. I need to load with the same alingment in the word doc.

And also i used this code

oDoc.Activate();
oDoc.ActiveWindow.Selection.WholeStory();
oDoc.ActiveWindow.Selection.Copy()
IDataObject data = Clipboard.GetDataObject();
txtdocument.Text = Clipboard.GetDataObject()
       .GetData(DataFormats.Text).ToString();

But it throws this error:

Object reference not set to an instance of an object.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痴者 2024-11-21 08:21:30

你的程序是单线程公寓吗?如果不是,Clipboard 类将无法工作。

参考

Clipboard 类只能在设置为单线程单元 (STA) 模式的线程中使用。要使用此类,请确保您的 Main 方法使用 STAThreadAttribute 属性进行标记。

Is your program single threaded apartment? If not the Clipboard class will not work.

Reference

The Clipboard class can only be used in threads set to single thread apartment (STA) mode. To use this class, ensure that your Main method is marked with the STAThreadAttribute attribute.

蛮可爱 2024-11-21 08:21:30

Clipboard.GetDataObject(); 可能会返回一个空引用,然后在最后一行中您尝试访问其成员

txtdocument.Text = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();

替换最后一行

txtdocument.Text = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();

无论如何,只是作为一个建议,为什么您不用此 :

txtdocument.Text = data.GetData(DataFormats.Text).ToString();

编辑:检查变量 oDoc、txtDocument 或 data 之一是否为空。

新编辑:

Thread tempThread = new Thread(new ThreadStart(threadstuff))
tempThread.SetApartmentState(System.Threading.ApartmentState.STA);
tempThread.Start();

It may be possible that Clipboard.GetDataObject(); returns a null reference and then in the very last line you try to access its member

txtdocument.Text = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();

Anyway just as a suggestion, why you dont replace the last line

txtdocument.Text = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();

with this:

txtdocument.Text = data.GetData(DataFormats.Text).ToString();

EDIT: check if either one of your variables oDoc, txtDocument, or data is null..

NEW EDIT :

Thread tempThread = new Thread(new ThreadStart(threadstuff))
tempThread.SetApartmentState(System.Threading.ApartmentState.STA);
tempThread.Start();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文