记录一次控件刷新后消失,错位的解决方法
winform界面控件过多,持续刷新会出现控件消失,错位等现实问题,双缓存也不能解决。
使用以下的刷新方式之后不再出现控件显示问题。
private void RefreshDataOnUI() { if (this.InvokeRequired) { this.Invoke((MethodInvoker)delegate { // 在 UI 线程上更新控件 // 可以在这里更新更多的控件 this.Text = _protName; ulb_ProductSN.Text = _productSn; ulb_CurrCleanTime.Text = _currCleanTime.ToString(); ulb_CurrFlowRate.Text = _currFlowRate.ToString("f3"); ulb_FlowRateMPE.Text = _flowRateMPE; ulb_CleanTimeSet.Text = _cleanTimeSet; ulb_CurrPress.Text = _currPress.ToString("f3"); ulbl_HydraulicSet.Text = "管道压力上限:" + _hydraulicSet.ToString("f3") + " Mpa"; ulbl_PorpvalveOpen.Text = "通道比例阀开启:" + _currPropValveOpendegree.ToString("f1") + "%"; ulb_PortInfor.Text = _portInfor; }); } else { // 如果当前已经在 UI 线程上,直接更新控件 // 可以在这里更新更多的控件 this.Text = _protName; ulb_ProductSN.Text = _productSn; ulb_CurrCleanTime.Text = _currCleanTime.ToString(); ulb_CurrFlowRate.Text = _currFlowRate.ToString("f3"); ulb_FlowRateMPE.Text = _flowRateMPE; ulb_CleanTimeSet.Text = _cleanTimeSet; ulb_CurrPress.Text = _currPress.ToString("f3"); ulbl_HydraulicSet.Text = "管道压力上限:" + _hydraulicSet.ToString("f3") + " Mpa"; ulbl_PorpvalveOpen.Text = "通道比例阀开启:" + _currPropValveOpendegree.ToString("f1") + "%"; ulb_PortInfor.Text = _portInfor; } }

浙公网安备 33010602011771号