C#:写入word文档“string param too long”

时间:2015-12-18 23:19:23

标签: c# winforms office-interop

我正在使用C#和WinForms编写桌面应用程序。应用程序搜索文本并将其替换为用户输入。

问题是当textbox的多线属性设置为true时,如果输入的字符数超过254个,则会从string parameter too long返回System.Runtime.InteropServices.COMException错误

以下是方法:

private void FindAndReplace(Word.Application WordApp, object findText, object replaceWithText)
    {
        object matchCase = true;
        object matchWholeWord = true;
        object matchWildCards = false;
        object matchSoundsLike = false;
        object nmatchAllWordForms = false;
        object forward = true;
        object format = false;
        object matchKashida = false;
        object matchDiacritics = false;
        object matchAlefHamza = false;
        object matchControl = false;
        object read_only = false;
        object visible = true;
        object replace = 2;
        object wrap = 1;

        WordApp.Selection.Find.Execute(ref findText,
        ref matchCase, ref matchWholeWord,
        ref matchWildCards, ref matchSoundsLike,
        ref nmatchAllWordForms, ref forward,
        ref wrap, ref format, ref replaceWithText,
        ref replace, ref matchKashida,
        ref matchDiacritics, ref matchAlefHamza,
        ref matchControl);          
    }

我已经读过,解决这个问题的一种可能方法是将值分解为多个字符串数组,但这是解决这个问题的唯一方法还是有更简单的方法?

其他一些解决方案已经在ASP.NET中编写了一个JS包装器,但我没有服务器端功能。

另外,为什么在使用Interop.Word时多线textbox上有254长度限制?

1 个答案:

答案 0 :(得分:0)

将maxLength设置为0:

enter image description here

然后,您可以输入文本框的最大字符数(Max Char in TextBox C#?)。

enter image description here