Ich arbeite derzeit an einem Programm, das Daten aus einer Datenbank in C# -Formularen anzeigt und verarbeitet. Ich habe ein DataGridView, das beim Laden des Programms leer ist und später mit Daten aus der Datenbank gefüllt wird, wenn der Benutzer Elemente aus einem ToolStripMenu auswählt. Ich muss in der Lage sein, die Hintergrundfarbe einer Zelle in jeder Reihe, jeder Sekunde zu ändern. Ich habe einen Timer instanziiert und es eingerichtet, um jede Sekunde zu ticken. Ich habe eine Methode Ereignis einzurichten jedes Mal auszuführen, um die Zeitgeberticks (jede Sekunde), unten gezeigt:Ändern der Hintergrundfarbe der DataGrid-Zelle nach Timer Tick C# -Formulare
void _timer_0_Tick(object sender, EventArgs e)
{
}
I wäre in diesem Verfahren wie die „Status“ Zelle jeder Zeile in der färben zu können, DataGrid auf Rot oder Grün basierend darauf, ob der Status gut oder schlecht ist. Hier
ist einige Pseudo-Code in der Methode veranschaulicht, was ich tun möchte:
void _timer_0_Tick(object sender, EventArgs e)
{
bool isDataStable = //code to determine if stable on my end
if(isDataStable == true)
{
DataGrid.Row[Index].Column["Status"].BackColor = Green;
}
else
{
DataGrid.Row[Index].Column["Status"].BackColor = Red;
}
}
Jede Datagridview-Zeile/Spalte bearbeiten Beispiel, das ich gesehen habe, hat einen Event-Handler auf dem Datagridview-Basis zu verwenden, wie kann Ich implementiere den Timer und bearbeite gleichzeitig das GridView in Echtzeit.
Dank
Wo kommt aus dem Index kommen? Was soll es darstellen? – Plutonix
Mit einem Timer, der eine unbestimmte Anzahl von Zeilen pro Sekunde überprüft, ist ein schlechtes Design. Da sich die Daten erst ändern, nachdem der Benutzer die Zeilenbearbeitung beendet hat, prüfen Sie, ob die Daten gültig sind und färben Sie die Statuszelle. – Gusman
Die 'DataGridView' Klasse hat eine' Rows' Eigenschaft und jeder 'DataGridViewRow' hat eine' Cells' Eigenschaft und jede 'DataGridViewCell' hat eine' Style' Eigenschaft die eine 'BackColor' Eigenschaft hat. – NetMage