c# - 如何从另一个类刷新活动 WinForm 中的 DataGridView?
问题描述
我有一个带有 DataGridView 的 Winform,其中包含从 API 调用到服务器数据库的一些表值。我想在轮询服务器后刷新表,所以我使用了一个计时器来定期轮询服务器。我不确定如何让活动的 WinForm 更新或替换它,因为我有一个从“程序”类运行的 WinForm 和另一个从我的“PollTimers”类运行的 WinForm,其中计时器配置和运行发生。这是我的方法,“UpdateTable”来自我的“Form1”类,“OnPollEvent”来自“PollTimers”。
public void UpdateTable(string id, string status, string ticketStatus)
{
foreach(DataGridViewRow row in dataGridView1.Rows)
{
if ((string)row.Cells[2].Value == id)
{
row.Cells[3].Value = status;
row.Cells[4].Value = ticketStatus;
}
}
dataGridView1.Update();
dataGridView1.Refresh();
}
private async void OnPollEvent(Object source, ElapsedEventArgs e)
{
Form1 f = (Form1)Application.OpenForms["Form1"];
Console.WriteLine("updating...");
foreach (Server server in Polls)
{
string json = await call.CallAsync(server.id);
dynamic convert = JsonConvert.DeserializeObject<RootObject>(json);
string ticketStatus = await call.TicketStatusAsync(server.id);
if (convert.status != "online")
{
Polls.Remove(server);
RePolls.Add(server, 0);
}
f.UpdateTable(server.id, convert.status, ticketStatus);
}
Console.WriteLine("updated.");
}
解决方案
推荐阅读
- java - 应用程序不会显示 mediaPlayer
- go - 我如何黑洞一个标准的 Go 网络请求
- amazon-web-services - RDS vCPU 和 RAM 配置属性
- javascript - foreach里面的foreach js
- angular - 在 Angular 中,如何使用“href”导航到相对路径?
- javascript - Javascript / react - .map 无法正常工作
- eclipse - 通过 RestTemplate 交换不适用于自定义类
- rust - 结构中的可变性
- list - TCL列表foreach
- r - 如何在此优化问题中避免多个 for 循环