【发布时间】:2018-11-04 06:19:31
【问题描述】:
我只是想找到当前行第一个空格的位置索引。
我编写的代码仅适用于整个 Richtextbox 中的第一个空格,但如果我尝试获取以下空格(同一行或以下行)的位置索引,我总是得到 - 1 我不知道为什么。
我一直在阅读以下文档: MSDN documentation link
我使用了 Find(Char[], Int32) 选项,方式如下:
RTB1.Find(CChar(" "), RTB1.GetFirstCharIndexOfCurrentLine)
问题是,当我尝试在第一个空格之后检测下一个空格时,我得到 -1。如果我使用该代码检测第一行的第一个空格,我会得到 6 作为结果(这是正确的)。但是对于以下空格,我总是得到 -1,即使它是第一行或以下几行。
【问题讨论】:
-
运行此代码时插入符号的位置是什么?
-
你为什么使用
GetFirstCharIndexOfCurrentLine?当前行是包含插入符号的行,它很可能是最后一行。如果要在刚刚找到的索引之后查找下一个索引,则需要以刚刚找到的索引为起点。 -
不,接受的答案效果不佳。如果您认为它确实如此,那是因为您没有正确测试它。尝试将“a b c”添加到第一行,将“d”添加到第二行,然后将插入符号放在末尾,您会看到它返回 -1,就像您的原始代码一样。两者都不能正常工作,并且通过适当的测试变得明显,这需要不止一次试验。
-
根据您的问题,插入符号的位置与您要执行的操作无关,因此您用来执行此操作的代码不应依赖于插入符号的位置。
标签: vb.net winforms visual-studio-2013 richtextbox