In einem Windows Forms DataGridView versuche ich, die ausgewählte Zeile fett Schrift und nicht die Hintergrundfarbe zu ändern.Font-Überlappung in DataGridView
Für diese Angelegenheit habe ich den folgenden Code:
// This method is used to load the data into the grid
private void GridLoad()
{
// Configures the Data Source
Grid.DefaultCellStyle.SelectionBackColor = Color.Transparent;
Grid.ClearSelection();
}
private void Grid_SelectionChanged(object sender, EventArgs e)
{
var dataGridView = Grid;
foreach (DataGridViewRow row in dataGrid.Rows)
{
row.DefaultCellStyle.Font = dataGrid.Font;
}
if (dataGridView.SelectedRows.Count > 0)
{
var selectedRow = dataGridView.SelectedRows[0];
selectedRow.DefaultCellStyle.Font = new Font(dataGridView.Font, FontStyle.Bold);
}
}
Der Code funktioniert, wenn ich eine der Zeilen klicken, um es auszuwählen, die Schriftart fett wird, aber es gibt eine Überlappung.
Der Text wird dupliziert, es scheint, als ob der Originaltext in regulärer Schriftart im Hintergrund bleibt und der neue Text in Fettdruck oben leicht nach rechts verschoben erscheint.
Warum passiert es? Warum passiert diese Überschneidung und wie löse ich sie?
Danke für die Antwort. Das funktioniert auch, es macht die Schriftart der ausgewählten Zeile korrekt fett, aber es gibt immer noch das Problem der Überlappung. Hast du eine Ahnung, was es sein könnte? Danke noch einmal! – user1620696
Überprüfen Sie die bearbeitete Antwort, das Hauptproblem ist in dieser Zeile: 'Grid.DefaultCellStyle.SelectionBackColor = Color.Transparent;'. Entfernen Sie es und dann haben Sie kein Problem beim Rendern. Wenn Sie keine 'SelectionBackColor' haben wollen, reicht es aus,' SelectionBackColor' auf den Wert von 'BackColor' der Zelle zu setzen. –
Danke für das Feedback :) –