阅读文字Doc。使用c#

时间:2011-06-07 05:50:42

标签: c# dll ms-word

我创建了一个应用程序。富文本框中的文本存储在word doc中。使用word interop dll。现在我想把doc这个词读回我的richtextbox。

我用oDoc.Content.Text来阅读。它的工作,但对齐不存在。我需要在单词doc中加载相同的alingment。

我还使用此代码

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

但它引发了这个错误:

  

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

2 个答案:

答案 0 :(得分:2)

您的程序是单线程公寓吗?如果不是,Clipboard类将无效。

Reference

  

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

答案 1 :(得分:0)

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();