Значит так. Полазив по инету, ничего толкового тоже не нашел, поэтому предлагаю альтернативный вариант: замена данных непосредственно в ячейках после заполнения грида. Пример:
Код:
private void Form1_Load(object sender, EventArgs e)
{
this.tmpTableAdapter.Fill(this.testDataSet.tmp);
string hyperlink = "";
int index = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
hyperlink = row.Cells[2].FormattedValue.ToString(); //Берем нашу строку вида www.ya.ru#www.ya.ru@#
index = hyperlink.IndexOf("#"); //Ищем знак #
hyperlink = hyperlink.Substring(index + 1, hyperlink.Substring(index + 1).Length - 1); //Вычисляем подстроку.
row.Cells[2].Value = hyperlink; //Заносим в ячейку.
}
}
В таком варианте все работает. В примере код вставлен сразу после заполнения грида. Можно преобразовать его в функцию и вызывать когда необходимо. Само собой, надо будет в строке row.Cells[2].Value вместо
2 поставить нужный столбец.