比较同一文本框中的多个单词

时间:2014-12-11 12:46:58

标签: c# richtextbox

我试图在c#中创建一个简单的词法分析器。

我有2个富文本框,第1个框将输入代码,第2个框将显示输出。

代码:

private void button1_Click(object sender, EventArgs e)
{
        if (richTextBox1.Text.Contains("public"))
            richTextBox2.Text = "public= id";
        if (richTextBox1.Text.Contains("main"))
            richTextBox2.Text = "main = id";
        if (richTextBox1.Text.Contains("void"))
            richTextBox2.Text = "void = id";
}

它总是只显示1场比赛.. 如果我的输入是“public static void main” 它只在richtextbox2中显示“public = id”。

为什么不显示主要或无效?

我是新手,任何帮助将不胜感激。谢谢:))

2 个答案:

答案 0 :(得分:3)

您应该使用AppendText代替。即:

if (richTextBox1.Text.Contains("public"))
        richTextBox2.AppendText("public= id");

richTextBox2.Text = "someText"实际上将richtextbox的文本设置为“someText”。因此,对于代码的每个满足if条件,您的richtextobx2文本将被覆盖

答案 1 :(得分:1)

如果文本框中有“public static void main”,则代码将显示“void = id”。 这是因为每次代码找到它要查找的字符串时,它都会替换框值中的文本。

所以,要改变这一点,而不是使用:

richTextBox2.Text = ...

使用

richTextBox2.Text = richTextBox2.Text + ...

richTextBox2.Text += ...

这样您就可以将文本添加到文本框中。