Como eu adiciono a mesma string a uma ListBox em algumas linhas?

No topo do formulário eu tenho:

string[] data;
Color []color;

No construtor:

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

Então eu tenho uma função que eu carrego no construtor:

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;
        }           
    }        
}

Mas é adicionar à ListBox apenas uma vez uma linha. Eu quero que seja como listbox1.Items.Add então é adicionar todas as linhas do arquivo de texto para o listBox.

Então im colorindo as linhas em vermelho:

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;
}

Como posso adicionar todas as linhas do StreamReader usando Items.Add mas usando DataSource?

Como posso colorir em vermelho apenas a palavra "Url:" eu tenho essa linha:

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

E eu quero adicionar todas as linhas do arquivo de texto e cada linha para colorir apenas a palavra "Url:"

questionAnswers(2)

yourAnswerToTheQuestion