我正在使用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长度限制?