在我的 Winform 4.5 应用程序中,我有一个DataGridView
第一列作为链接列。我想让所选链接单元格的链接颜色为白色。由于默认情况下所选行(或单元格)的背景颜色为蓝色,并且ForeColor
所有链接的背景颜色也是蓝色的,因此当用户选择一行(或链接单元格)时,链接的文本不可读。我尝试编写以下代码,但它根本不会更改所选链接单元格的链接颜色。
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
foreach (DataGridViewLinkCell cell in ((DataGridView)sender).SelectedCells)
{
if (cell.ColumnIndex == 0)
{
if (cell.Selected)
{
cell.Style = new DataGridViewCellStyle()
{
SelectionForeColor = SystemColors.HighlightText
};
}
}
}
}
然后我将上面的代码修改如下。但是它将所有链接的链接颜色更改为白色 - 这使得未选择的链接单元格不可读,因为这些链接的背景色也是白色:
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
foreach (DataGridViewLinkCell cell in ((DataGridView)sender).SelectedCells)
{
if (cell.ColumnIndex == 0)
{
if (cell.Selected)
{
cell.LinkColor = SystemColors.HighlightText;
}
}
}
}
我通过在 foreach 循环中设置断点并选择链接单元格来测试这两个代码。我注意到代码确实正确地通过了 foreach 循环的一次迭代。此外,我没有更改默认设置DataGridViewLinkColumn
编辑
默认情况下,DataGridView
在行选择上看起来像这样。请注意,第二列中的单元格ForeColor
变为白色,而不是第一列中的单元格:
我希望它在行选择中看起来像这样: