如何在富文本框中添加一行?

时间:2014-09-06 04:46:06

标签: c# textbox richtextbox

我编写了以下代码来创建一个简单的字典应用程序:

    private void btnDefine_Click(object sender, EventArgs e)
    {
        //string word = txtWords.Text;
        XmlDocument xDoc = new XmlDocument();
        try
        {
            string [] words = txtWords.Text.Split('\n');
            foreach (string word in words ){
            xDoc.Load("http://www.dictionaryapi.com/api/v1/references/collegiate/xml/" + word + "?key=[KEY]");
            txtWords.Text = (xDoc.SelectSingleNode("entry_list/entry/def/dt").InnerText);

            Clipboard.SetText(txtWords.Text);
            lblCopied.Text = "Copied to the clipboard!";
        }
        }
        catch
        {
            MessageBox.Show("That is not a word in the dictionary, please try again.", "Word not found in the dictionary", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }

    }
}

} 此表单包含一个富文本框,您可以在其中输入单词,它将为您定义单词。现在,只要我在文本框中输入一个单词,我就会得到定义。但是如果我在文本框中输入两个或更多单词,我会得到列表中最后一个单词的定义,我该如何制作它以便所有定义都显示在新行中。 I.E.,如果我在文本框中输入三个单词并按btnDefine,我将得到文本框中所有三个单词的定义。

1 个答案:

答案 0 :(得分:0)

您可以输入与他们输入方式类似的定义:在不同的行上。请参阅String.Join

List<string> definitions = new List<string>();
foreach (string word in words )
{
    xDoc.Load("http://www.dictionaryapi.com/api/v1/references/collegiate/xml/" + word + "?key=[KEY]");
    string definition = (xDoc.SelectSingleNode("entry_list/entry/def/dt").InnerText);
    definitions.Add(definition);
}
txtWords.Text = String.Join("\n", definitions);
Clipboard.SetText(txtWords.Text);
lblCopied.Text = "Copied to the clipboard!";