2012-11-10 2 views
1

그래서 나는이 코드를 가지고 동시에 추가됩니다 또는 내가 지정한 ping의 수) 필드를 한 번에 펌핑합니다. 내가하려는 일은 dataGridView1을 주기적으로 채우는 것입니다. 예 : 각 핑이 완료된 후 dataGridView1에 출력되고 다음 핑이 시작됩니다.정기적으로 DataGridView에 한 행을 추가하지만, 모든 행이

아이디어가 있으십니까? 사용자의 요구에

최고의 솔루션의
dataGridView1.Update(); 
+1

정말 5 개를 모두 한꺼번에 추가합니까? 아니면 핑이 바로 매우 빠르게 일어나고 있습니까? 이 코드에 따르면 매우 빠르게 보입니다. 그리드가 느리게 채워지 길 원합니까? – tallseth

+0

예, 어쩌면 그냥 빨리 채워 가고있을 것입니다. – obious

답변

1

당신은 행 추가하는 각 후 DataGridView에의 update 메소드를 호출 할 수 있습니다. 클래스에 빈 DataTable을 정의하고 Ping 코드를 BackgroundWorker_DoWork 메서드에 넣습니다. 그런 다음 DataTable에 결과를 추가하십시오. 이 메서드가 완료되면 BackgroundWorker_WorkerComplete가 발생했습니다. 다음 ping을 위해 DoWork 메소드를 다시 실행해야합니다.

1

하나는 BackgroundWorker에 있습니다 :

0
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(); 
} 
관련 문제