[英]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);
}
出於某種原因,當它被泵入dataGridView1
, dataGridview1
有五個(或我指定的 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.