实现btnSaveTempRegion按钮功能:弹出保存文件对话框并将测温区信息保存为CSV文件

This commit is contained in:
zqm
2025-11-11 14:23:39 +08:00
parent a1684422b1
commit ff8846f0d7
2 changed files with 53 additions and 0 deletions

View File

@@ -166,6 +166,7 @@ namespace JoyD.Windows.CS
this.btnSaveTempRegion.Size = new System.Drawing.Size(23, 4); this.btnSaveTempRegion.Size = new System.Drawing.Size(23, 4);
this.btnSaveTempRegion.Text = "保存测温区"; this.btnSaveTempRegion.Text = "保存测温区";
this.btnSaveTempRegion.ToolTipText = "保存测温区"; this.btnSaveTempRegion.ToolTipText = "保存测温区";
this.btnSaveTempRegion.Click += new System.EventHandler(this.BtnSaveTempRegion_Click);
// //
// btnNewTempDiff // btnNewTempDiff
// //

View File

@@ -2999,6 +2999,58 @@ namespace JoyD.Windows.CS
} }
} }
/// <summary>
/// 保存测温区按钮点击事件
/// </summary>
private void BtnSaveTempRegion_Click(object sender, EventArgs e)
{
try
{
// 如果没有测温区,则提示用户
if (_drawnRectangles.Count == 0)
{
MessageBox.Show("没有可保存的测温区", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
// 弹出保存文件对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "CSV文件 (*.csv)|*.csv|所有文件 (*.*)|*.*";
saveFileDialog.Title = "保存测温区信息";
saveFileDialog.DefaultExt = "csv";
saveFileDialog.FileName = "测温区信息.csv";
// 显示保存文件对话框,如果用户点击了确定按钮
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// 使用StreamWriter保存为CSV文件
using (StreamWriter writer = new StreamWriter(saveFileDialog.FileName, false, Encoding.UTF8))
{
// 写入CSV文件头部
writer.WriteLine("Index,X,Y,Width,Height,Color");
// 遍历所有测温区将信息写入CSV文件
foreach (RegionInfo region in _drawnRectangles)
{
// 获取颜色的十六进制表示
string colorHex = ColorTranslator.ToHtml(region.Color);
// 写入一行数据,格式:索引,X坐标,Y坐标,宽度,高度,颜色
writer.WriteLine($"{region.Index},{region.ImageRectangle.X},{region.ImageRectangle.Y},{region.ImageRectangle.Width},{region.ImageRectangle.Height},{colorHex}");
}
}
// 保存成功后提示用户
MessageBox.Show("测温区信息保存成功", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
Console.WriteLine("保存测温区信息失败: " + ex.Message);
MessageBox.Show("保存测温区信息失败: " + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary> /// <summary>
/// 新建测温区按钮点击事件 /// 新建测温区按钮点击事件
/// </summary> /// </summary>