現在、C#フォームのデータベースからのデータを表示および処理するプログラムで作業しています。プログラムの読み込み時に空のDataGridViewがあり、後でユーザーがToolStripMenuからアイテムを選択すると、データベースのデータが書き込まれます。私は各行、毎秒のセルの背景色を変更することができる必要があります。私はタイマーをインスタンス化し、それを1秒ごとにチェックするように設定しました。 Iは、以下に示す、タイマーティックごとに時間(秒ごとに)実行するメソッドイベントを設定している:Timer Tick C#フォームでのDataGridセルの背景色の変更
void _timer_0_Tick(object sender, EventArgs e)
{
}
この方法で私は、各行の「ステータス」細胞を着色できるようにしたいと思いステータスが良好か悪いかに基づいて、DataGridを赤または緑のいずれかに設定します。ここで
は私がやりたいものを示す方法でいくつかの擬似コードです:
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;
}
}
私が見てきたすべてのDataGridViewの行/列の編集例はDataGridViewのに基づいて、イベントハンドラを使用する必要があり、どのようにすることができます私はリアルタイムでGridViewを編集中にタイマーを実装していますか?
おかげ
インデックスから来るのでしょうか?それは何を表わすはずですか? – Plutonix
1秒ごとに未定義の行数をチェックするタイマーは、悪い設計です。ユーザーが行の編集を終了した後にのみデータが変更されるため、データが有効であるかどうかをチェックしてステータスセルの色を付ける瞬間です。 – Gusman
'DataGridView'クラスには' Rows'プロパティがあり、 'DataGridViewRow'には' Cells'プロパティがあり、 'DataGridViewCell'には' BackColor'プロパティを持つ 'Style'プロパティがあります。 – NetMage