加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我可以向后浏览Visual C#中的字符串吗?

发布时间:2020-12-15 21:00:27 所属栏目:百科 来源:网络整理
导读:我有一个搜索功能,我可以从文本的开头到结尾搜索我的richtextbox中的字符串.当我发现最后一个从它开始的时候开始. 这里的代码: #region Search private void txtSearch_KeyPress(object sender,KeyPressEventArgs e) { start = 0; end = 0; } //Searchfield
我有一个搜索功能,我可以从文本的开头到结尾搜索我的richtextbox中的字符串.当我发现最后一个从它开始的时候开始.

这里的代码:

#region Search

      private void txtSearch_KeyPress(object sender,KeyPressEventArgs e)
    {
        start = 0;
        end = 0;
    }     

    //Searchfield
    private void toolStripTextBoxSearch_Click(object sender,EventArgs e)
    {

    }//end TextBoxSearch

    public int FindMyText(string txtToSearch,int searchStart,int searchEnd)
    {
        // Set the return value to -1 by default.
        int retVal = -1;

        // A valid starting index should be specified.
        if (searchStart >= 0)
        {
            // A valid ending index
            if (searchEnd > searchStart || searchEnd == -1)
            {
                // Find the position of search string in RichTextBox
                indexOfSearchText = richTextBox.Find(txtToSearch,searchStart,searchEnd,RichTextBoxFinds.None);
                // Determine whether the text was found in richTextBox1.
                if (indexOfSearchText != -1)
                {
                    // Return the index to the specified search text.
                    retVal = indexOfSearchText;
                }
            }
        }
        return retVal;
    }//end FindMyText

    private void buttonSearch_left_Click(object sender,EventArgs e)
    {

    }

    private void buttonSearch_right_Click(object sender,EventArgs e)
    {
        int startindex = 0;

        if (txtSearch.Text.Length > 0)
        {
             startindex = FindMyText(txtSearch.Text,start,richTextBox.Text.Length);
        }
            // If string was not found report it
            if (startindex < 0 )
            {
                if (stringfoundflag==1)
                {
                startindex = FindMyText(txtSearch.Text,richTextBox.Text.Length); //Start at Pos. 0
                }
                else
                {
                    MessageBox.Show("Not found in Textfield","Search",MessageBoxButtons.OK,MessageBoxIcon.Information);
                }
            }//end if 

             if (startindex >= 0)
            {
                stringfoundflag = 1;
            // Set the highlight color as red
            //richTextBox.SelectionColor = Color.Red;
            // Find the end index. End Index = number of characters in textbox
            int endindex = txtSearch.Text.Length;
                // Highlight the search string
                richTextBox.Select(startindex,endindex);
                // mark the start position after the position of
                // last search string
                start = startindex + endindex;
        }
    }

    // Reset the richtextbox when user changes the search string
    private void textBox1_TextChanged(object sender,EventArgs e)
    {
        start = 0;
        indexOfSearchText = 0;
    }

    private void txtSearch_Enter(object sender,EventArgs e)
    {
        if (txtSearch.Text == "Search")
        {
            txtSearch.Text = "";
        }
    }

    private void txtSearch_Leave(object sender,EventArgs e)
    {
        if (txtSearch.Text == "")
        {
            txtSearch.Text = "Search";
        }
    }

    #endregion

我有两个按钮,一个搜索右边,一个左边,右边的工作就像开头的描述.

题:

我可以使用我的解决方案从按钮向右反转搜索功能,还是必须更改整个搜索功能?

示例:首先按照并跳转到最后一次,然后是倒数第二次,依此类推.

解决方法

嗨,我发现我的问题的解决方案,我希望有人可以帮助这个.

码:

public int FindMyTextleft(string txtToSearch,RichTextBoxFinds.Reverse);
                // Determine whether the text was found in richTextBox1.
                if (indexOfSearchText != -1)
                {
                    // Return the index to the specified search text.
                    retVal = indexOfSearchText;
                }
            }
        }//end FindMyTextleft
        return retVal;
    }//end FindMyText

    private void buttonSearch_left_Click(object sender,EventArgs e)
    {
        int startindex = 0;

        if (txtSearch.Text.Length > 0 & stringfoundflag == 1)
        {
            startindex = FindMyTextleft(txtSearch.Text,startindex,end);
        }

        else if (txtSearch.Text.Length > 0)
        {
            startindex = FindMyTextleft(txtSearch.Text,richTextBox.Text.Length);
        }
        // If string was not found report it
        if (startindex < 0)
        {
            if (stringfoundflag == 1)
            {
                startindex = FindMyTextleft(txtSearch.Text,richTextBox.Text.Length); //Start at Pos. 0
            }
            else
            {
                MessageBox.Show("Not found in Textfield",MessageBoxIcon.Information);
            }
        }//end if 

        if (startindex >= 0)
        {
            stringfoundflag = 1;
            // Set the highlight color as red
            //richTextBox.SelectionColor = Color.Red;
            // Find the end index. End Index = number of characters in textbox
            int endindex = txtSearch.Text.Length;
            // Highlight the search string
            richTextBox.Select(startindex,endindex);
            // mark the start position after the position of
            // last search string
            end = startindex;
        }
    }//buttonSearch_left_Click

友好的祝福嗅探

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读