Wie kann ich den "Auswahlstil" auf einem DataGridView (winforms) ändern?DataGridView ausgewählten Zellenstil
Antwort
Sie können leicht die forecolor und Hintergrundfarbe von selcted Zellen ändern, indem Sie Werte in die SelectedBackColor und SelectedForeColor der Grid Default Zuordnung .
Wenn Sie weiter tun müssen, Styling, Sie brauchen, um das Selection Ereignis behandeln
Edit: (anderer Beispielcode Fehler hatte, mehrere ausgewählten Zellen Einstellung für [wie in FullRowSelect])
using System.Drawing.Font;
private void dataGridView_SelectionChanged(object sender, EventArgs e)
{
foreach(DataGridViewCell cell in ((DataGridView)sender).SelectedCells)
{
cell.Style = new DataGridViewCellStyle()
{
BackColor = Color.White,
Font = new Font("Tahoma", 8F),
ForeColor = SystemColors.WindowText,
SelectionBackColor = Color.Red,
SelectionForeColor = SystemColors.HighlightText
};
}
}
SelectedBackColor, SelectedForeColor OK. Es scheint, dass es keine Möglichkeit gibt, unterschiedliche Farben für unterschiedliche Zellen zu setzen. :-( –
SelectedBackColor und SelectedForeColor, wenn sie für die DefaultCellStyle -Eigenschaft verwendet werden, gelten die gleichen Farben für jede ausgewählte Zelle. Wenn Sie einen Stil für verschiedene Zellen festlegen möchten, ist die Antwort noch das SelectionChanged-Ereignis und einige bedingte Zuweisung basierend auf der Zeile oder der Spalte der ausgewählten Zelle – Luis
Danke !!!! genau das, was ich gesucht habe ... Es ist eine Schande, ich kann noch nicht stimmen !!! –
Verwenden Sie die SelectedCells property der GridView und die Style property der DataGridViewCell.
nicht gut. Getestet mit einem Datagridview auf leeres Formular mit diesem Code (ändert nur die erste ausgewählte Zelle): private void dataGridView1_SelectionChanged (object sender, EventArgse) { dataGridView1.SelectedCells [0] = .Style.BackColor Color.Beige; } Der Stil ist nur sichtbar, nachdem die Auswahl in eine andere Zelle geändert wurde. –
Behandeln Sie das Selection Ereignis auf Ihrem Datagridview und fügen Sie Code, der etwa wie folgt aussieht:
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
foreach (DataGridViewCell c in row.Cells)
{
c.Style = this.dataGridView1.DefaultCellStyle;
}
}
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.BackColor = Color.Red;
style.Font = new Font("Courier New", 14.4f, FontStyle.Bold);
foreach (DataGridViewCell cell in this.dataGridView1.SelectedCells)
{
cell.Style = style;
}
}
Getestet. Unvollständig. Der Hintergrund wird nicht angewendet, während die Schriftart ist. Weird –
Der Hintergrund IS gilt, aber die Farbe der "Auswahl" überschreibt es. Wenn Sie zum Bearbeiten in die Zelle doppelklicken, sehen Sie die Hintergrundfarbe. – BFree
Sie können die Lösung versuchen, die in diesem topic bereitgestellt wird. Ich habe es getestet und genehmigt.
Hoffnung, die geholfen hat.
Mit diesem können Sie sogar einen farbigen Rahmen zu den ausgewählten Zellen zeichnen.
private void dataGridView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected == true)
{
e.Paint(e.CellBounds, DataGridViewPaintParts.All & ~DataGridViewPaintParts.Border);
using (Pen p = new Pen(Color.Red, 1))
{
Rectangle rect = e.CellBounds;
rect.Width -= 2;
rect.Height -= 2;
e.Graphics.DrawRectangle(p, rect);
}
e.Handled = true;
}
}
}
- 1. Get Text von DataGridView ausgewählten Zellen
- 2. Entfernen der ausgewählten Zeilen aus einem Datagridview
- 3. Datagridview ausgewählten Spalte jeder Zeile Rechtschreibprüfung in VS2005 vb .net
- 4. Wie bekomme ich Daten aus der ausgewählten Zeile von datagridview
- 5. RowIndex basierend auf den ausgewählten Zellen in einem DataGridView abrufen
- 6. Ändern der Hintergrundfarbe der ausgewählten Zeile in Datagridview bei mouseover
- 7. Wie bekomme ich die TEXT von Datagridview Combobox ausgewählten Artikel?
- 8. Wie Sie alle ausgewählten Zeilen in einem DataGridView-Steuerelement abwählen?
- 9. Child DataGridView in einem DataGridView
- 10. DataGridView: Kopieren in die Zwischenablage
- 11. DevExpress Get Selected Cell DataGridView
- 12. DataGridView Erfassen von Benutzerzeilenauswahl
- 13. Summierung ausgewählter Werte von Datagridview
- 14. Wie kann ich den Wert aller ausgewählten Zellen in einem DataGridView abrufen?
- 15. Wie erhalte ich die ID aus einer ausgewählten Zeile in einer Datagridview?
- 16. Datagridview Anzeige
- 17. Datagridview aktualisieren
- 18. DataGridView Zeilenpositionierung
- 19. DataGridView-Spaltenvorlage
- 20. DataGridView Binding
- 21. DataGridView MaskedTextBoxColumn
- 22. DataGridView Skalierung
- 23. DataGridView Scrollverhalten
- 24. dataGridView Standardfehlerdialoghandle
- 25. Kind datagridview zum Elterntextkasten winform
- 26. initialisieren DataRow Objekt mit Datagridview Ausgewählte Reihe
- 27. C# Wie man einen spezifischen Zellenstil für eine komplette Zeile einstellt, ohne den DefaultCellStyle ständig zu ändern
- 28. Löschen ausgewählter Zeilen aus DataGridView und Datenbank
- 29. Wie aktualisiert man DataGridView nach dem Löschen einer Zeile Formular DataGridView und Datenbank in C#?
- 30. Combobox datagridview Auswahl geändert Populationswert in datagridview andere Zelle
klärte meine Frage. Ich meinte: Ändern Sie die _whole_ sieht (Stil, Hintergrund enthalten) einer Zelle, die ausgewählt ist, _wenn_ es ausgewählt ist. Es hat keinen Sinn, den Stil zu ändern, wenn Sie die visuelle Veränderung nie sehen. Es tut mir sehr leid für das Missverständnis :-(. Mein armes Englisch schlägt wieder. Entschuldigung) -: –