Я написал функцию ниже, чтобы выбрать числовую строку, такую как 1,23,000.00 В WebBrowser я захватываю событие Double_Click, а затем передаю выбранный диапазон в следующую функцию.Проблема с этой функцией C#
позволяет сказать, что начальный выбор был 000, и моя цель - выбрать целую строку, как указано выше.
myRange=doc.selection.createRange()
myRange=SelectCSNumbers(myRange)
Я возвращаю объект Range из нижеуказанной функции. Вопрос здесь
return tmpRange.duplicate();//here it should terminate
count++;
, когда я возвращал окончательный выбор этот метод вызывался снова Как я не знаю, может ли кто pointout мою ошибку.
private mshtml.IHTMLTxtRange SelectCSNumbers(mshtml.IHTMLTxtRange myRange) { mshtml.IHTMLTxtRange tmpRange = myRange.duplicate(); string[] strInt = tmpRange.text.Split(','); bool result = false; result = CheckText(tmpRange, strInt, result); if (result && count==0)// { //Expand the Range with a single Character tmpRange.expand("character"); if (tmpRange.text.Length > myRange.text.Length) { if (tmpRange.text.IndexOf(' ') == -1) //if no space is found that means the selection is not proper { //Check for ,/. if (tmpRange.text.IndexOf(',') == -1)//if NO Comma is found { if (tmpRange.text.IndexOf('.') == -1) { //EOS } else { //. is found SelectCSNumbers(tmpRange.duplicate()); } } else { SelectCSNumbers(tmpRange.duplicate()); } } else if (tmpRange.text.IndexOf(' ') != -1) { tmpRange = myRange.duplicate(); tmpRange.moveStart("character", -1); if (tmpRange.text.IndexOf(' ') == -1) //if no space is found that means the selection is not proper { //Check for ,/. if (tmpRange.text.IndexOf(',') == -1)//if NO Comma is found { if (tmpRange.text.IndexOf('.') == -1) { //EOS } else { //. is found SelectCSNumbers(tmpRange.duplicate()); } } else { SelectCSNumbers(tmpRange.duplicate()); } } } } else if (tmpRange.text.Length == myRange.text.Length) { tmpRange = myRange.duplicate(); tmpRange.moveStart("character", -1); if (tmpRange.text.Length == myRange.text.Length) { //tmpRange = null; return tmpRange.duplicate();//here it should terminate count++; } else if (tmpRange.text.IndexOf(' ') == -1) //if no space is found that means the selection is not proper { if (tmpRange.text.IndexOf(',') == -1)//if NO Comma is found { if (tmpRange.text.IndexOf('.') == -1) { //EOS } else { //. is found SelectCSNumbers(tmpRange.duplicate()); } } else { SelectCSNumbers(tmpRange.duplicate()); } } } } return tmpRange.duplicate(); }