簡體   English   中英

定期向 DataGridView 添加一行,但同時添加所有行

[英]Periodically adding one row to DataGridView, but all rows get added at the same time

所以我有這個代碼:

Ping ping = new Ping();
for(int i = 0; i<= number_of_pings; i++)
{
    PingReply pingReply = ping.Send(address_to_send);
    dataGridView1.Rows.Add(address_to_send, pingReply.Address, pingReply.RoundtripTime, pingReply.Status);         
}

出於某種原因,當它被泵入dataGridView1dataGridview1有五個(或我指定的 ping 數)數據字段。 我想要做的是定期填充dataGridView1 例如,在每個 ping 完成后,它的輸出到dataGridView1和下一個 ping 開始等等。

想法?

您可以在每次添加行后調用 datagridview 的更新方法:

dataGridView1.Update();

滿足您需求的最佳解決方案之一是 BackgroundWorker。 在您的類中定義一個空的 DataTable,並將 Ping 代碼放入 BackgroundWorker_DoWork 方法中。 然后將結果添加到數據表。 當此方法完成時,BackgroundWorker_WorkerComplete 已觸發。 您應該再次運行 DoWork 方法以進行下一次 ping。

Ping ping = new Ping();

for(int i = 0; i<= number_of_pings; i++)
{
    PingReply pingReply = ping.Send(address_to_send);

    dataGridView1.Rows.Add(address_to_send, pingReply.Address, pingReply.RoundtripTime, pingReply.Status);
    dataGridView1.PerformLayout();
    Application.DoEvents();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM