0

フォームに DataGridView があり、セルに色を付けようとしています。

コードは次のとおりです。

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();
        }
    }

ご覧のとおり、関数 ColorData は 2 回呼び出しますが、コンストラクターから呼び出されると、何も起こらず、セルはまだ白です。イベント関数である button1_Click から呼び出すと、セルが正しく色付けされます。

どうしたの?

4

1 に答える 1

0

私は自分で答えを見つけました。最初に - フォームが読み込まれ、その後でのみセルの色を変更できます。メイン フォームのイベント関数 Load で色を変更すると、すべてが機能します。

于 2012-04-10T13:52:34.020 に答える