0
    excel = Workbook.Open("1.xls");
    sheeticerik = excel.Worksheets[0];
    for (int k = 0; k < sutun; k++)
        for (int i = 0; i < satir; i++)
        {
            string a = sheeticerik.Cells[i, k].StringValue;
            if (a.Contains("X"))
            {
                dataGridView1.Rows[x1].Cells[y1].Style.BackColor = System.Drawing.Color.Red;
                System.Threading.Thread.Sleep(1000);
                dataGridView1.Refresh();

            }
        }

毎秒datagridviewにカラーを印刷したいのですが、このコードを書きましたが、機能しません。プログラムloop.countX1000秒待機してすぐにカラーを印刷するためです。連続印刷ではありません。これに対して何ができますか?

解決策[編集]:

-フォームにタイマーコントロールを追加します。(コンポーネントカテゴリにあります)

-Intervalプロパティを45000に設定します(値はミリ秒を表します)

-フォームデザイナまたはコードのどこかで、タイマーのEnabledプロパティをTrueに設定します。

-タイマーのTickイベントのハンドラーを追加します(タイマーをダブルクリックすると、これを取得できます)

-Tickハンドラー内で、dataGridViewを更新します

private void timer1_Tick(object sender, EventArgs e)
{
    // Update DataGridView
}

そしてUse、timer1.Start();..。

4

1 に答える 1

1

タイマーで色を印刷するのではなく、DataGridViewのRender()イベント中に色を印刷してみてください。画面のちらつきもはるかに少なくなります。

于 2012-05-06T15:02:47.723 に答える