Jak dodać ten sam ciąg do ListBox w niektórych wierszach?

W górnej części formularza mam:

string[] data;
Color []color;

W konstruktorze:

color = new Color[1] { Color.Red};

Następnie mam funkcję, którą ładuję w konstruktorze:

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

Ale dodawanie do ListBox tylko raz jeden wiersz. Chcę, żeby było jak listbox1.Items.Add, a następnie dodaje wszystkie linie z pliku tekstowego do listBox.

Następnie im kolorowanie linii w kolorze czerwonym:

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawFocusRectangle();
    e.Graphics.DrawString(data[e.Index], new Font(FontFamily.GenericSansSerif, 8,
        FontStyle.Regular),new SolidBrush(color[e.Index]), e.Bounds);
}

private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e)
{
    e.ItemHeight = 16;
}

w jaki sposób mogę dodać wszystkie linie z StreamReader zamiast używając Items.Add, ale używając DataSource?

Jak mogę pokolorować na czerwono tylko słowo „Url:” mam ten wiersz:

data = new string [1] {"Url:" + tokeny [0] + "---" + "Localy KeyWord:" + tokeny [1]};

I chcę, aby dodać wszystkie wiersze z pliku tekstowego i każdego wiersza do pokolorowania tylko słowa „Url:”

questionAnswers(2)

yourAnswerToTheQuestion