更新
This commit is contained in:
@@ -1480,7 +1480,7 @@ namespace 全自动水压检测仪
|
|||||||
// windowInstance.Show();
|
// windowInstance.Show();
|
||||||
//}
|
//}
|
||||||
|
|
||||||
private void SwitchWindow<T>(T windowInstance, Func<T> createFunc) where T : UIForm
|
private void SwitchWindow<T>(ref T windowInstance, Func<T> createFunc) where T : UIForm
|
||||||
{
|
{
|
||||||
_isSwitchingWindow = true;
|
_isSwitchingWindow = true;
|
||||||
_readTimer?.Stop();
|
_readTimer?.Stop();
|
||||||
@@ -1497,44 +1497,55 @@ namespace 全自动水压检测仪
|
|||||||
{
|
{
|
||||||
MessageBox.Show("TCP连接已断开,请重新连接!", "提示");
|
MessageBox.Show("TCP连接已断开,请重新连接!", "提示");
|
||||||
});
|
});
|
||||||
|
ResumeAfterChildWindow();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 需要将 windowInstance 声明为局部变量
|
|
||||||
T localInstance = windowInstance;
|
|
||||||
|
|
||||||
// 复用窗口实例
|
// 复用窗口实例
|
||||||
if (localInstance == null || localInstance.IsDisposed)
|
if (windowInstance == null || windowInstance.IsDisposed)
|
||||||
{
|
{
|
||||||
localInstance = createFunc();
|
windowInstance = createFunc();
|
||||||
localInstance.FormClosed += (s, e) =>
|
windowInstance.FormClosed += (s, e) =>
|
||||||
{
|
{
|
||||||
SafeInvoke(() =>
|
ResumeAfterChildWindow();
|
||||||
{
|
|
||||||
_isSwitchingWindow = false;
|
|
||||||
_readTimer?.Start();
|
|
||||||
_readTimerTwo?.Start();
|
|
||||||
_alarmMonitorTimer?.Start();
|
|
||||||
this.Show();
|
|
||||||
this.Activate();
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
T targetWindow = windowInstance;
|
||||||
SafeInvoke(() => localInstance.Activate());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SafeInvoke(() =>
|
SafeInvoke(() =>
|
||||||
{
|
{
|
||||||
this.Hide();
|
this.Hide();
|
||||||
localInstance.Show();
|
if (!targetWindow.Visible)
|
||||||
|
{
|
||||||
|
targetWindow.Show();
|
||||||
|
}
|
||||||
|
targetWindow.Activate();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 如果需要更新外部引用,可以返回实例
|
public void ResumeAfterChildWindow()
|
||||||
// return localInstance;
|
{
|
||||||
|
SafeInvoke(() =>
|
||||||
|
{
|
||||||
|
_isSwitchingWindow = false;
|
||||||
|
|
||||||
|
if (_modbusMaster != null)
|
||||||
|
{
|
||||||
|
_readTimer?.Start();
|
||||||
|
_readTimerTwo?.Start();
|
||||||
|
_alarmMonitorTimer?.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.Visible)
|
||||||
|
{
|
||||||
|
this.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Activate();
|
||||||
|
UpdateControlsVisibilityByMode();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NormalTemperatureMode_FormClosing(object sender, FormClosingEventArgs e)
|
private void NormalTemperatureMode_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
@@ -1683,13 +1694,13 @@ namespace 全自动水压检测仪
|
|||||||
private void EnterFunction()
|
private void EnterFunction()
|
||||||
{
|
{
|
||||||
// 长按后进入的功能
|
// 长按后进入的功能
|
||||||
SwitchWindow(_coeffiicientsetting, () => new Coeffiicientsetting());
|
SwitchWindow(ref _coeffiicientsetting, () => new Coeffiicientsetting());
|
||||||
}
|
}
|
||||||
|
|
||||||
//切换报告界面
|
//切换报告界面
|
||||||
private void uiButton1_Click(object sender, EventArgs e)
|
private void uiButton1_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SwitchWindow(_report, () => new Report(CurrentReport));
|
SwitchWindow(ref _report, () => new Report(CurrentReport));
|
||||||
}
|
}
|
||||||
|
|
||||||
//箱体温度设置
|
//箱体温度设置
|
||||||
@@ -1841,7 +1852,7 @@ namespace 全自动水压检测仪
|
|||||||
//返回录入系统
|
//返回录入系统
|
||||||
private void uiButton7_Click(object sender, EventArgs e)
|
private void uiButton7_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SwitchWindow(_scanImport, () => new ScanImport());
|
SwitchWindow(ref _scanImport, () => new ScanImport(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2203,4 +2214,4 @@ namespace 全自动水压检测仪
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,8 +18,14 @@ namespace 全自动水压检测仪
|
|||||||
|
|
||||||
private ConductivityRepository _repository;
|
private ConductivityRepository _repository;
|
||||||
public ScanImport()
|
public ScanImport()
|
||||||
|
: this(null)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public ScanImport(NormalTemperatureMode normalTemperatureMode)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
_normalTemperatureMode = normalTemperatureMode;
|
||||||
_repository = new ConductivityRepository();
|
_repository = new ConductivityRepository();
|
||||||
uiDataGridView1.AutoGenerateColumns = false;
|
uiDataGridView1.AutoGenerateColumns = false;
|
||||||
}
|
}
|
||||||
@@ -419,17 +425,13 @@ namespace 全自动水压检测仪
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void SwitchWindow<T>(T windowInstance, Func<T> createFunc) where T : UIForm
|
private void SwitchWindow<T>(ref T windowInstance, Func<T> createFunc) where T : UIForm
|
||||||
{
|
{
|
||||||
|
|
||||||
// 需要将 windowInstance 声明为局部变量
|
|
||||||
T localInstance = windowInstance;
|
|
||||||
|
|
||||||
// 复用窗口实例
|
// 复用窗口实例
|
||||||
if (localInstance == null || localInstance.IsDisposed)
|
if (windowInstance == null || windowInstance.IsDisposed)
|
||||||
{
|
{
|
||||||
localInstance = createFunc();
|
windowInstance = createFunc();
|
||||||
localInstance.FormClosed += (s, e) =>
|
windowInstance.FormClosed += (s, e) =>
|
||||||
{
|
{
|
||||||
SafeInvoke(() =>
|
SafeInvoke(() =>
|
||||||
{
|
{
|
||||||
@@ -438,24 +440,32 @@ namespace 全自动水压检测仪
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
T targetWindow = windowInstance;
|
||||||
SafeInvoke(() => localInstance.Activate());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SafeInvoke(() =>
|
SafeInvoke(() =>
|
||||||
{
|
{
|
||||||
this.Hide();
|
this.Hide();
|
||||||
localInstance.Show();
|
if (!targetWindow.Visible)
|
||||||
|
{
|
||||||
|
targetWindow.Show();
|
||||||
|
}
|
||||||
|
targetWindow.Activate();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 如果需要更新外部引用,可以返回实例
|
|
||||||
// return localInstance;
|
|
||||||
}
|
}
|
||||||
private void uiButton1_Click(object sender, EventArgs e)
|
private void uiButton1_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SwitchWindow(_normalTemperatureMode, () => new NormalTemperatureMode());
|
if (_normalTemperatureMode != null && !_normalTemperatureMode.IsDisposed)
|
||||||
|
{
|
||||||
|
SafeInvoke(() =>
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
_normalTemperatureMode.ResumeAfterChildWindow();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SwitchWindow(ref _normalTemperatureMode, () => new NormalTemperatureMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user