我创建了一个应用程序。富文本框中的文本存储在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();
但它引发了这个错误:
对象引用未设置为对象的实例。
答案 0 :(得分:2)
您的程序是单线程公寓吗?如果不是,Clipboard
类将无效。
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();