我不明白为什么position=0
代替position=-1
RichTextBox.Text = "aaa";
int position = RichTextBox.Find("a", 3, 3, RichTextBoxFinds.None);
position=-1
如果
RichTextBox.Text = "aaa";
int position = RichTextBox.Find("aa", 2, 3, RichTextBoxFinds.None);
答案 0 :(得分:4)
不,这不是一个错误,但我会说文档可以编写,因为你必须深入了解以获取所需的信息。
经过一番游戏后,很明显规则如下:
start
和end
值是从零开始的索引,所以当你输入3时,你会要求它从一个不存在的字符开始。
如果您同时指定start
和end
,则会搜索整个文本,如documentation中所述。
具体使用您的示例:
RichTextBox.Text = "aaa";
int position = RichTextBox.Find("a", 3, 3, RichTextBoxFinds.None);
在从零开始的索引编制中,3
和3
都大于文本的实际长度,因此您尝试从不存在的字符开始。但是,因为您对3
和start
使用了end
,所以您满足上面的第2点,因为整个文本将被搜索,这就是为什么你在第0位(第一次出现)获得一场比赛。
RichTextBox.Text = "aaa";
int position = RichTextBox.Find("aa", 2, 3, RichTextBoxFinds.None);
在这里,您将start
告诉最后一个字符,当您搜索2个字符时,它无法匹配,因此您获得-1
作为结果。
所以你的结果是预期的。