【问题标题】:How would I create a find/search button on form2 to search and highlight text in a rich text box on form1 in c#我将如何在 form2 上创建一个查找/搜索按钮来在 c# 中的 form1 上的富文本框中搜索和突出显示文本
【发布时间】:2010-12-06 03:16:36
【问题描述】:

我目前正在用 C# 在 Visual Studio 2008 中开发一个小型 RTF 编辑器

我已经完成了几乎所有接受第二个表单上的查找/查找下一个按钮

Form1 包含富文本框

form2 包含一个用于搜索文本的文本框和两个按钮 - 查找和查找下一个

当你点击查找时,你在form2的文本框中输入的文字会在form1中高亮显示

我花了好几个小时试图弄清楚这一点,但无法得出结论

这里有人可以帮帮我吗? 提前致谢

我设法得到了一位朋友的帮助,这就是我现在的查找按钮,我不确定这是否是最好的方法。

我知道有一个richtextbox.find 方法,但我不知道如何使用它 `公共部分类frmFind:表格 { frmRTFEditor frmRTFEditor;

    public frmFind()
    {
        InitializeComponent();
    }

    public frmFind(frmRTFEditor form)
    {
        InitializeComponent();
        frmRTFEditor = form;
        this.TopMost = true;
    }

    private void cmdFind_Click(object sender, EventArgs e)
    {
        lblMatch.Visible = false;
        try
        {
            if (txtSearch.Text == "")
            {
                lblMatch.Visible = true;
            }
            else
            {
                int StartPosition;
                StringComparison SearchType;

                SearchType = StringComparison.OrdinalIgnoreCase;

                StartPosition = frmRTFEditor.rtbDoc.Text.IndexOf(txtSearch.Text, SearchType);

                if (StartPosition < 0)
                {
                    lblMatch.Visible = true;
                }
                else
                {

                    frmRTFEditor.rtbDoc.Select(StartPosition, txtSearch.Text.Length);
                    frmRTFEditor.rtbDoc.ScrollToCaret();
                    frmRTFEditor.Focus();
                    cmdFindNext.Enabled = true;
                }
            }
        }
        catch (Exception)
        {
            lblMatch.Visible = true;
            cmdFindNext.Enabled = false;
        }
    }`

【问题讨论】:

  • 在不知道究竟是什么的情况下无法帮助您。你哪部分有问题?表单之间的通信?突出显示文本?还有什么?

标签: c# visual-studio-2008


【解决方案1】:

从您问题的“声音”来看,我怀疑您正在尝试在 Form2 后面的代码中编写搜索和突出显示代码,或者您可能正在尝试在某处创建循环引用。

我只会使用 Form2 作为 UI。从 Form1 创建它的一个实例,显示 Form2,将输入值读回 Form1 中的代码。从那里您可以访问 form1 上富文本框中的所有文本。

查找搜索文本的最快/最简单的方法可能是创建一个包含对richTextBox1.Text.IndexOf(..) 的调用的循环

【讨论】:

  • 我找不到文本
猜你喜欢
  • 2016-11-23
  • 2019-12-19
  • 1970-01-01
  • 2012-06-25
  • 2011-03-03
  • 1970-01-01
  • 2016-03-21
  • 2016-01-29
  • 2016-01-21
相关资源
最近更新 更多