修复代码规范警告:1. 将imageBox_DoubleClick方法名修改为符合命名规则的ImageBox_DoubleClick 2. 简化Setting.cs中Timer对象的初始化

This commit is contained in:
zqm
2025-11-06 10:52:17 +08:00
parent 29ab3b0a25
commit 4637abb282
3 changed files with 48 additions and 47 deletions

View File

@@ -58,7 +58,7 @@ namespace JoyD.Windows.CS.Toprie
this.imageBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.imageBox.TabIndex = 0;
this.imageBox.TabStop = false;
this.imageBox.DoubleClick += new System.EventHandler(this.imageBox_DoubleClick);
this.imageBox.DoubleClick += new System.EventHandler(this.ImageBox_DoubleClick);
//
// contextMenuStrip1
//

View File

@@ -828,7 +828,7 @@ namespace JoyD.Windows.CS.Toprie
// 创建图像副本以避免线程安全问题
Image clonedImage = (Image)tempImage.Clone();
// 调用Setting窗口的方法更新实时温度图像
Setting.Form.UpdateRealTimeTemperatureImage(clonedImage);
Setting.Form.RealTimeImage = clonedImage;
}
if (lastImage != null)
@@ -2217,7 +2217,7 @@ namespace JoyD.Windows.CS.Toprie
/// imageBox双击事件处理方法
/// 双击后弹出检测配置窗口
/// </summary>
private void imageBox_DoubleClick(object sender, EventArgs e)
private void ImageBox_DoubleClick(object sender, EventArgs e)
{
try
{

View File

@@ -22,8 +22,7 @@ namespace JoyD.Windows.CS
InitializeComponent();
// 初始化定时器
_timer = new Timer();
_timer.Interval = 1000; // 1秒 = 1000毫秒
_timer = new Timer { Interval = 1000 };
_timer.Tick += Timer_Tick;
// 注册窗口事件
@@ -49,6 +48,7 @@ namespace JoyD.Windows.CS
private void Setting_FormClosing(object sender, FormClosingEventArgs e)
{
_timer.Stop();
mRealTimeImage?.Dispose();
}
/// <summary>
@@ -58,8 +58,48 @@ namespace JoyD.Windows.CS
{
// 这里可以添加每秒需要执行的代码
// 例如:更新界面数据、检查状态等
if (DesignMode || this.IsDisposed || this.Disposing)
return;
// 线程安全检查 - 确保在UI线程上执行
if (this.InvokeRequired)
{
try
{
this.BeginInvoke(new Action(UpdatePictureBoxImage));
}
catch (ObjectDisposedException)
{
// 控件已释放,忽略
}
return;
}
UpdatePictureBoxImage();
}
/// <summary>
/// 更新PictureBox图像的辅助方法
/// </summary>
private void UpdatePictureBoxImage()
{
// 安全更新图像
if (pictureBoxTemperatureDisplay != null && !pictureBoxTemperatureDisplay.IsDisposed)
{
// 保存旧图像引用,以便设置新图像后释放
Image oldImage = pictureBoxTemperatureDisplay.Image;
// 设置新图像
pictureBoxTemperatureDisplay.Image = mRealTimeImage;
// 释放旧图像(如果不是当前设置的图像)
if (oldImage != null && oldImage != mRealTimeImage)
{
try { oldImage.Dispose(); } catch { }
}
}
}
private Image mRealTimeImage = null;
/// <summary>
/// 实时图像属性
/// </summary>
@@ -69,51 +109,12 @@ namespace JoyD.Windows.CS
{
if (DesignMode || this.IsDisposed || this.Disposing || pictureBoxTemperatureDisplay == null || pictureBoxTemperatureDisplay.IsDisposed)
return null;
return pictureBoxTemperatureDisplay.Image;
return mRealTimeImage;
}
set
{
UpdateRealTimeTemperatureImage(value);
}
}
/// <summary>
/// 同步更新实时温度图像
/// </summary>
/// <param name="image">要显示的图像</param>
public void UpdateRealTimeTemperatureImage(Image image)
{
if (DesignMode || this.IsDisposed || this.Disposing)
return;
// 线程安全检查 - 确保在UI线程上执行
if (this.InvokeRequired)
{
try
{
this.BeginInvoke(new Action<Image>(UpdateRealTimeTemperatureImage), image);
}
catch (ObjectDisposedException)
{
// 控件已释放,忽略
}
return;
}
// 安全更新图像
if (pictureBoxTemperatureDisplay != null && !pictureBoxTemperatureDisplay.IsDisposed)
{
// 保存旧图像引用,以便设置新图像后释放
Image oldImage = pictureBoxTemperatureDisplay.Image;
// 设置新图像
pictureBoxTemperatureDisplay.Image = image;
// 释放旧图像
if (oldImage != null && oldImage != image)
{
try { oldImage.Dispose(); } catch { }
}
mRealTimeImage?.Dispose();
mRealTimeImage = value;
}
}
}