当前位置:编程学习 > C#/ASP.NET >>

搜索下一个如何实现?

这是搜索pdf中第一个 textBox1.Text中字符串   的位置并显示,请问如何修改可以实现点一下然后显示pdf中第二个字符串的位置??
public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }
        
        private  int FindTextForPDF(string pdfFile)
        {

            string strFindText1 = this.textBox1.Text;
            int findText = -1;
            string[] lst = new string[] { };
            string strTemp = "d:\\b.txt";
            using (PDFWrapper pdf = new PDFWrapper(""))
            {

                pdf.LoadPDF(pdfFile);
                pdf.ExportText(strTemp, 1, pdf.PageCount, false, true);
                using (System.IO.StreamReader reader = new System.IO.StreamReader(strTemp))
                {
                    string strOut = reader.ReadToEnd();
                    lst = strOut.Split(' ');
                }
            }

            for (int i = 0; i < lst.Length; i++)
            {
                if (lst[i].IndexOf(strFindText1) > 0)
                {
                    findText = i;
                    break;
                }
            }
            return findText;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int m = FindTextForPDF("D:\\777_BEJ_PP_D633W101-BEJ_TD\\PDF\\23.PDF");
            string fileName = "D:\\777_BEJ_PP_D633W101-BEJ_TD\\PDF\\23.PDF";
            axAcroPDF1.LoadFile(fileName);
            axAcroPDF1.setCurrentPage(m + 1);//里面的数字就是打开时的页面
            axAcroPDF1.Show();
        } --------------------编程问答--------------------
  int findText = -1;//定义为全局变量
public Form1()
  {
  InitializeComponent();
  }
  private void Form1_Load(object sender, EventArgs e)
  {
    
  }
    
  private int FindTextForPDF(string pdfFile)
  {

  string strFindText1 = this.textBox1.Text;  string[] lst = new string[] { };
  string strTemp = "d:\\b.txt";
  using (PDFWrapper pdf = new PDFWrapper(""))
  {

  pdf.LoadPDF(pdfFile);
  pdf.ExportText(strTemp, 1, pdf.PageCount, false, true);
  using (System.IO.StreamReader reader = new System.IO.StreamReader(strTemp))
  {
  string strOut = reader.ReadToEnd();
  lst = strOut.Split(' ');
  }
  }

  for (int i = findText ; i < lst.Length; i++)//每按一次就查找下一个
  {
  if (lst[i].IndexOf(strFindText1) > 0)
  {
  findText = i;
  break;
  }
  }
  return findText;
  }

  private void button1_Click(object sender, EventArgs e)
  {
  int m = FindTextForPDF("D:\\777_BEJ_PP_D633W101-BEJ_TD\\PDF\\23.PDF");
  string fileName = "D:\\777_BEJ_PP_D633W101-BEJ_TD\\PDF\\23.PDF";
  axAcroPDF1.LoadFile(fileName);
  axAcroPDF1.setCurrentPage(m + 1);//里面的数字就是打开时的页面
  axAcroPDF1.Show();
  }

axAcroPDF1的show与close自己再控制控制
--------------------编程问答-------------------- if (lst[i].IndexOf(strFindText1) > 0)在这里显示索引超出了数组界限,怎么改??本人小白。。。
引用 1 楼  的回复:
  int findText = -1;//定义为全局变量
public Form1()
  {
  InitializeComponent();
  }
  private void Form1_Load(object sender, EventArgs e)
  {
    
  }
    
  private int FindTextForPDF(string pdfF……
--------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,