C# DataGridviewLinkCell-更改高亮显示单元格的前颜色

C# DataGridviewLinkCell-更改高亮显示单元格的前颜色,c#,datagridview,C#,Datagridview,我有一个datagridview,其中1列为DataGridviewLinkColumn类型,链接文本为蓝色,当焦点位于单元格上时,单元格的背景色也为蓝色,这使得读取单元格值变得困难 使用下面的链接,当焦点位于该单元格上时,我尝试将文本背景颜色更改为白色,并且效果良好 private void dataGridView1\u选择已更改(对象发送方,事件参数e) { foreach(中的DataGridViewLinkCell单元格 ((DataGridView)sender.SelectedC

我有一个datagridview,其中1列为DataGridviewLinkColumn类型,链接文本为蓝色,当焦点位于单元格上时,单元格的背景色也为蓝色,这使得读取单元格值变得困难

使用下面的链接,当焦点位于该单元格上时,我尝试将文本背景颜色更改为白色,并且效果良好

private void dataGridView1\u选择已更改(对象发送方,事件参数e)
{
foreach(中的DataGridViewLinkCell单元格
((DataGridView)sender.SelectedCells.OfType())
{
如果(选定单元格)
{
cell.LinkColor=SystemColors.HighlightText;
}
}
}
私有void dataGridView1_CellLeave(对象发送方,DataGridViewCellEventArgs e)
{
foreach(中的DataGridViewLinkCell单元格
((DataGridView)sender.Rows[e.RowIndex].Cells.OfType())
{
cell.LinkColor=cell.link?颜色。紫色:颜色。蓝色;
}
}
但是,默认情况下,当数据加载到Datagridview中时,第一个单元格即第[0]行的单元格[0]上有焦点,在这种情况下,一旦我开始更改单元格焦点,前景色不会变为白色

在初始状态下,当焦点默认为白色时,如何将DataGridviewLinkColumn文本颜色设置为白色


此外,当我将焦点更改为datagridview之外的任何其他控件时,突出显示的单元格链接文本颜色将变回蓝色。

当您说初始状态时,您的意思是程序何时启动/启动?如果是在初始程序启动时,则在InitializeComponent()之后调用更改颜色代码不是在应用程序启动时,而是在用户从datagridview外部的下拉列表中选择一个项目并单击submit按钮时,datagridview将被显示。。。。此时,数据加载到datagridview,网格显示给用户。数据是如何加载的,您是用自己的代码加载的,还是datagrid链接到数据源?将颜色更改代码放入提交按钮单击事件中,加载数据并显示网格后。当您说初始状态时,是指程序何时启动/启动?如果是在初始程序启动时,则在InitializeComponent()函数后调用更改颜色代码。而不是在应用程序启动时,但是,当用户从datagridview之外的下拉列表中选择一个项目并单击submit按钮时,datagridview将显示。。。。这是当数据加载到datagridview并向用户显示网格时。数据是如何加载的,您是用自己的代码加载的,还是datagrid链接到数据源的?在加载数据并显示网格后,将颜色更改代码放入submit button click事件中。
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    foreach (DataGridViewLinkCell cell in 
        ((DataGridView) sender).SelectedCells.OfType<DataGridViewLinkCell>())
    {
        if (cell.Selected)
        {
            cell.LinkColor = SystemColors.HighlightText;
        }
    }

}

private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
    foreach (DataGridViewLinkCell cell in
        ((DataGridView) sender).Rows[e.RowIndex].Cells.OfType<DataGridViewLinkCell>())
    {
        cell.LinkColor = cell.LinkVisited ? Color.Purple : Color.Blue;
    }
}