我开发的c#窗口从ModbusTCP从应用程序提供数据从dataGridView。我创建了从dataGridView读取数据并开始侦听的方法。我需要在当前监听中刷新数据。
我的方法:
void Button1Click(object sender, EventArgs e)
{
IPAddress address = IPAddress.Parse(tbIP.Text);
int port = Convert.ToInt32(tbPort.Text);
slaveTcpListener = new TcpListener(address, port);
slave = ModbusTcpSlave.CreateTcp(1, slaveTcpListener);
DataStore data = new DataStore();
for (int i=0; i<dgV.Rows.Count-1; i++)
{
slave.DataStore.InputRegisters[Convert.ToInt32(dgV[0,i].Value)] = (ushort)Convert.ToUInt16(dgV[1,i].Value);
}
slave.Listen();} 我需要在DataGridView中刷新数据。我怎么能做到呢?因此,如果我更改表中的数据并再次单击按钮,则会得到一个错误。谢谢你的帮助
发布于 2014-03-07 10:44:45
您可以使用timer对象(更多信息这里)。例如,您可以启动定时器,按下按钮,然后计时器可以读取数据并更新网格视图。
例如,您可以执行以下步骤:
timer1的对象。timer1。Visual为您的计时器的单击事件创建一个处理程序(应该称为timer1_Tick())。定时器将定期运行您在timer1_Tick()事件处理程序中放入的代码。timer1_Tick()中为按钮编写的代码
私有void timer1_Tick(对象发送方,EventArgs e) { IPAddress地址= IPAddress.Parse(tbIP.Text);int端口= Convert.ToInt32(tbPort.Text);slaveTcpListener =新TcpListener(地址、端口);tbIP.Text= ModbusTcpSlave.CreateTcp(1,slaveTcpListener);DataStore data =新DataStore();for (int i=0;i现在,如果您单击Button1,您的计时器将启动,并应从Modbus读取数据,并每10秒更新一次GridView。
https://stackoverflow.com/questions/22201850
复制相似问题