1

プログラムでセルのフォントの色を設定する必要がある C# Winforms アプリケーションがあります。条件が満たされた場合、フォントは赤になります。状態チェックが正しいことを確認しました。問題は行にあります

 dgv_Table.Rows[cell.RowIndex].Cells[cell.ColumnIndex].Style.ForeColor = Color.Blue;

「セル」は、現在チェックしているセルです。これはまったく何もしません。ループから取り出して次のように確認しても、

dgv_Table.Rows[0].Cells[0].Style.ForeColor = Color.Blue;

それでも何もしません。コード行は、Main() 中に呼び出されるヘルパー関数にあります。

DefaultCellValue を設定すると、ビューが変更されますが、私が望むものではありません。

 private void Main_Load(object sender, EventArgs e)
    {
        dgv_Table.Rows[0].Cells[0].Style.ForeColor = Color.Blue;
        dgv_Table.Rows[0].Cells[0].Style.BackColor = Color.Black;
        foreach (DataGridViewRow row in dgv_Table.Rows)
        {
            foreach (DataGridViewCell cell in row.Cells)
            {
                cell.Style.BackColor = Color.Black;
                if (cell.OwningColumn.Name == "RiskName" && cell.Value.ToString() != "")
                {
                    string wholeText = cell.Value.ToString();
                    int score = Convert.ToInt32(wholeText.Substring(wholeText.IndexOf("[") + 1, wholeText.IndexOf("–") - 1));
                    if (score > 300)
                    {
                        dgv_Table.Rows[cell.RowIndex].Cells[cell.ColumnIndex].Style.ForeColor = Color.Blue;
                    }
                }
            }
        }

    }
4

2 に答える 2

1

私がやったことは、これを別のイベントに結び付けることでした。DataGridView は TabControl 内にあり、メイン タブにはなかったので、TabControl がクリックされたときにチェックを実行しました。

おそらくベストプラクティスではなく、確かに理想的ではありませんが、現在は機能しています。

于 2013-06-18T18:52:47.667 に答える