Ich habe DataGridView auf meinem Formular und ich versuche, Zelle zu färben.Problem mit Farbe datagridview
Hier ist der Code:
public partial class Form1 : Form
{
DataTable dtToGrid = new DataTable();
BindingSource bs = new BindingSource();
public Form1()
{
InitializeComponent();
dtToGrid.Columns.Add("Group");
DataRow dr;
dr = dtToGrid.NewRow();
dr["Group"] = "must become lightGreen";
dtToGrid.Rows.Add(dr);
bs.DataSource = dtToGrid;
dataGridView1.DataSource = bs;
ColorData();
dataGridView1.Refresh();
}
public void ColorData()
{
dataGridView1[0, 0].Style.BackColor = Color.LightGreen;
}
private void button1_Click(object sender, EventArgs e)
{
ColorData();
}
}
Wie Sie sehen können, Funktion Colordata zweimal aufrufen, aber wenn es vom Konstruktor aufgerufen wird - nichts passiert und Zelle ist immer noch weiß. Aufruf von button1_Click, was event-function ist, färbt die Zelle korrekt.
Was ist los?
Welche Klasse ist das Objekt dataGridView1? –
System.Windows.Forms.DataGridView – Metaller
[Ähnliche Frage] (http://stackoverflow.com/questions/1365617/how-to-force-refresh-the-datagridviews-content) Überprüfen Sie die Antwort auf den Link. dataGridView1.EndEdit(); wird wahrscheinlich den Trick machen, da du Sachen änderst, die du bearbeitest. –