繁体   English   中英

如何使用richTextBox而不是ListBox?

[英]How do i use a richTextBox instead of ListBox?

我有此代码即时通讯使用listBox:

private void button6_Click(object sender, EventArgs e)
        {

            using (var w = new StreamWriter(keywords))
            {
                crawlLocaly1 = new CrawlLocaly();
                crawlLocaly1.StartPosition = FormStartPosition.CenterParent;
                DialogResult dr = crawlLocaly1.ShowDialog(this);
                if (dr == DialogResult.OK)
                {
                    int line = listBox1.Items.Count;
                    if (LocalyKeyWords.ContainsKey(mainUrl))
                    {
                        line = listBox1.Items.IndexOf("Url: " + mainUrl + " --- " + "Localy KeyWord: " + LocalyKeyWords[mainUrl][0]);
                        listBox1.Items.Remove("Url: " + mainUrl + " --- " + "Localy KeyWord: " + LocalyKeyWords[mainUrl][0]);
                        LocalyKeyWords[mainUrl].Clear();
                        LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                    }
                    else
                    {
                        LocalyKeyWords[mainUrl] = new List<string>();
                        LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                    }
                    Write(w);
                    listBox1.Items.Insert(line, "Url: " + mainUrl + " --- " + "Localy KeyWord: " + LocalyKeyWords[mainUrl][0]);
                }
                if (dr == DialogResult.Cancel)
                {
                    Write(w);
                }
            } 
        }


        private void LoadKeys(Dictionary<string,List<string>> dictionary, string FileName)
        {
           string line = System.String.Empty;
           using (StreamReader sr = new StreamReader(keywords))
           {
            while ((line = sr.ReadLine()) != null)
            {
                string[] tokens = line.Split(',');
                dictionary.Add(tokens[0], tokens.Skip(1).ToList());
                listBox1.Items.Add("Url: " + tokens[0] + " --- " + "Localy KeyWord: " + tokens[1]);
            }
           } 
        }

        private void Write(StreamWriter writer)
        {
            foreach (KeyValuePair<string, List<string>> kvp in LocalyKeyWords)
            {
                writer.WriteLine(kvp.Key + "," + string.Join(",", kvp.Value));
            }
        }

然后我想使用richTextBox而不是listBox,所以我尝试了这段代码,但是它不像listBox那样工作。 它只向我显示一个链接,并且不像listBox那样工作。 如何使用richTextBox修复它?

私人无效button6_Click(对象发件人,EventArgs的){

        using (var w = new StreamWriter(keywords))
        {
            crawlLocaly1 = new CrawlLocaly();
            crawlLocaly1.StartPosition = FormStartPosition.CenterParent;
            DialogResult dr = crawlLocaly1.ShowDialog(this);
            if (dr == DialogResult.OK)
            {
                int line = richTextBox2.GetLineFromCharIndex(richTextBox2.TextLength) + 1;
                if (LocalyKeyWords.ContainsKey(mainUrl))
                {
                    line = richTextBox2.Text.IndexOf("Url: " + mainUrl + " --- " + "Localy KeyWord: " + LocalyKeyWords[mainUrl][0]);
                    richTextBox2.Text.Remove(line); //"Url: " + mainUrl + " --- " + "Localy KeyWord: " + LocalyKeyWords[mainUrl][0]);
                    LocalyKeyWords[mainUrl].Clear();
                    LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                }
                else
                {
                    LocalyKeyWords[mainUrl] = new List<string>();
                    LocalyKeyWords[mainUrl].Add(crawlLocaly1.getText());
                }
                Write(w);
                richTextBox2.Text.Insert(line, "Url: " + mainUrl + " --- " + "Localy KeyWord: " + LocalyKeyWords[mainUrl][0]);
            }
            if (dr == DialogResult.Cancel)
            {
                Write(w);
            }
        } 
    }


    private void LoadKeys(Dictionary<string,List<string>> dictionary, string FileName)
    {
       string line = System.String.Empty;
       using (StreamReader sr = new StreamReader(keywords))
       {
        while ((line = sr.ReadLine()) != null)
        {
            string[] tokens = line.Split(',');
            dictionary.Add(tokens[0], tokens.Skip(1).ToList());
            richTextBox2.Text = "Url: " + tokens[0] + " --- " + "Localy KeyWord: " + tokens[1];
        }
       } 
    }

    private void Write(StreamWriter writer)
    {
        foreach (KeyValuePair<string, List<string>> kvp in LocalyKeyWords)
        {
            writer.WriteLine(kvp.Key + "," + string.Join(",", kvp.Value));
        }
    }

解决方法是:

richTextBox2.AppendText("Url: " + tokens[0] + " --- " + "Localy KeyWord: " + tokens[1]+Environment.NewLine);

谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM