2012-10-12 25 views
0

我使用列表框的代码IM:如何使用richTextBox而不是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中一样。它向我展示了只有一个链接,并没有像列表框那样行事。我如何解决它与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)); 
     } 
    } 
+0

每一个有listBox我用richTextBox2.Text ....但它似乎并没有工作的地方。 –

回答

0

解决办法是:

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

感谢。