diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/README.md b/Windows/CS/Framework4.0/Toprie/Toprie/README.md index cc64167..66b23a0 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/README.md +++ b/Windows/CS/Framework4.0/Toprie/Toprie/README.md @@ -159,21 +159,22 @@ 13. 当选中区域时,鼠标可以移动区域,用于调整区域位置。 14. 当选中区域时,右击鼠标,退出选中状态,转为就绪状态 15. 当就绪状态时,工具栏显示绘制温差图按钮(btnDrawTempDiff) -16. 当绘制温差图按钮按下时,进入绘制温差图状态 +16. 当绘制温差图按钮按下时,进入绘制温差图状态,显示添加和删除温差图例按钮(btnAddTempDiff、btnDeleteTempDiff),显示温差图例列表(dataGridViewTempDiff) 17. 当绘制温差图状态时,右击鼠标进入就绪状态 #### 配置状态说明 1. 初始状态/就绪状态: - 显示btnDrawRegion和btnDrawTempDiff按钮 - - 隐藏btnSelectColor、btnDeleteRegion按钮、dataGridViewTempDiff + - 隐藏btnSelectColor、btnDeleteRegion按钮、dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff、btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15 2. 选中区域状态: - 显示btnDeleteRegion和btnSelectColor按钮 - - 隐藏btnDrawRegion和btnDrawTempDiff按钮、dataGridViewTempDiff + - 隐藏btnDrawRegion和btnDrawTempDiff按钮、dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff、btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15 3. 绘制状态: - 显示btnSelectColor按钮 - 显示btnDrawRegion按钮 - 隐藏btnDeleteRegion按钮 - - 隐藏btnDrawTempDiff按钮、dataGridViewTempDiff + - 隐藏btnDrawTempDiff按钮、dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff、btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15 4. 绘制温差图状态: - - 显示btnDrawTempDiff按钮,显示dataGridViewTempDiff + - 显示btnDrawTempDiff按钮,显示dataGridViewTempDiff、btnAddTempDiff、btnDeleteTempDiff + - 当选定温差图例后,显示btnBrushSize1、btnBrushSize3、btnBrushSize5、btnBrushSize10、btnBrushSize15 - 隐藏btnSelectColor、btnDeleteRegion、btnDrawRegion按钮 \ No newline at end of file diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.Designer.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.Designer.cs index 0a74949..f4eb775 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.Designer.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.Designer.cs @@ -163,6 +163,30 @@ namespace JoyD.Windows.CS this.btnBrushSize5.ToolTipText = "选择5像素画笔"; this.btnBrushSize5.Click += new System.EventHandler(this.BtnBrushSize5_Click); // + // btnBrushSize10 + // + this.btnBrushSize10 = new System.Windows.Forms.ToolStripButton(); + this.btnBrushSize10.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.btnBrushSize10.Image = this.CreateBrushSizeImage(10, System.Drawing.Color.Purple); + this.btnBrushSize10.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btnBrushSize10.Name = "btnBrushSize10"; + this.btnBrushSize10.Size = new System.Drawing.Size(23, 22); + this.btnBrushSize10.Text = "画笔大小10px"; + this.btnBrushSize10.ToolTipText = "选择10像素画笔"; + this.btnBrushSize10.Click += new System.EventHandler(this.BtnBrushSize10_Click); + // + // btnBrushSize15 + // + this.btnBrushSize15 = new System.Windows.Forms.ToolStripButton(); + this.btnBrushSize15.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.btnBrushSize15.Image = this.CreateBrushSizeImage(15, System.Drawing.Color.Orange); + this.btnBrushSize15.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btnBrushSize15.Name = "btnBrushSize15"; + this.btnBrushSize15.Size = new System.Drawing.Size(23, 22); + this.btnBrushSize15.Text = "画笔大小15px"; + this.btnBrushSize15.ToolTipText = "选择15像素画笔"; + this.btnBrushSize15.Click += new System.EventHandler(this.BtnBrushSize15_Click); + // // toolStrip // this.toolStrip.AllowDrop = true; @@ -178,7 +202,9 @@ namespace JoyD.Windows.CS new System.Windows.Forms.ToolStripSeparator(), this.btnBrushSize1, this.btnBrushSize3, - this.btnBrushSize5}); + this.btnBrushSize5, + this.btnBrushSize10, + this.btnBrushSize15}); this.toolStrip.Location = new System.Drawing.Point(3, 0); this.toolStrip.Name = "toolStrip"; this.toolStrip.Size = new System.Drawing.Size(104, 25); @@ -291,30 +317,8 @@ namespace JoyD.Windows.CS private System.Windows.Forms.ToolStripButton btnBrushSize1; private System.Windows.Forms.ToolStripButton btnBrushSize3; private System.Windows.Forms.ToolStripButton btnBrushSize5; + private System.Windows.Forms.ToolStripButton btnBrushSize10; + private System.Windows.Forms.ToolStripButton btnBrushSize15; private System.Windows.Forms.DataGridView dataGridViewTempDiff; - - /// - /// 创建表示画笔大小的图标 - /// - /// 画笔大小(像素) - /// 画笔颜色 - /// 表示画笔大小的图标 - private System.Drawing.Bitmap CreateBrushSizeImage(int size, System.Drawing.Color color) - { - System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(20, 20); - using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp)) - { - // 填充背景为透明色 - g.Clear(System.Drawing.Color.Magenta); - // 计算正方形位置,使其居中 - int x = (20 - size) / 2; - int y = (20 - size) / 2; - // 绘制正方形表示画笔大小 - g.FillRectangle(new System.Drawing.SolidBrush(color), x, y, size, size); - // 添加边框 - g.DrawRectangle(new System.Drawing.Pen(System.Drawing.Color.Black), x, y, size - 1, size - 1); - } - return bmp; - } } } \ No newline at end of file diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index e691b6c..ee1e2c9 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -49,6 +49,9 @@ namespace JoyD.Windows.CS private bool _isMoving = false; private Point _startMovePoint; + // 画笔大小相关变量 + private int _currentBrushSize = 1; // 默认画笔大小为1像素 + public Setting() { InitializeComponent(); @@ -85,6 +88,121 @@ namespace JoyD.Windows.CS dataGridViewTempDiff.Visible = false; } + /// + /// 1像素画笔大小按钮点击事件 + /// + private void BtnBrushSize1_Click(object sender, EventArgs e) + { + _currentBrushSize = 1; + // 更新按钮选中状态 + UpdateBrushSizeButtonSelection(1); + } + + /// + /// 3像素画笔大小按钮点击事件 + /// + private void BtnBrushSize3_Click(object sender, EventArgs e) + { + _currentBrushSize = 3; + // 更新按钮选中状态 + UpdateBrushSizeButtonSelection(3); + } + + /// + /// 5像素画笔大小按钮点击事件 + /// + private void BtnBrushSize5_Click(object sender, EventArgs e) + { + _currentBrushSize = 5; + // 更新按钮选中状态 + UpdateBrushSizeButtonSelection(5); + } + + /// + /// 10像素画笔大小按钮点击事件 + /// + private void BtnBrushSize10_Click(object sender, EventArgs e) + { + _currentBrushSize = 10; + // 更新按钮选中状态 + UpdateBrushSizeButtonSelection(10); + } + + /// + /// 15像素画笔大小按钮点击事件 + /// + private void BtnBrushSize15_Click(object sender, EventArgs e) + { + _currentBrushSize = 15; + // 更新按钮选中状态 + UpdateBrushSizeButtonSelection(15); + } + + /// + /// 创建表示画笔大小的图标 + /// + /// 画笔大小(像素) + /// 画笔颜色 + /// 表示画笔大小的图标 + private System.Drawing.Bitmap CreateBrushSizeImage(int size, System.Drawing.Color color) + { + System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(20, 20); + using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp)) + { + // 填充背景为透明色 + g.Clear(System.Drawing.Color.Magenta); + // 计算正方形位置,使其居中 + int x = (20 - size) / 2; + int y = (20 - size) / 2; + // 绘制正方形表示画笔大小 + g.FillRectangle(new System.Drawing.SolidBrush(color), x, y, size, size); + // 添加边框 + g.DrawRectangle(new System.Drawing.Pen(System.Drawing.Color.Black), x, y, size - 1, size - 1); + } + return bmp; + } + + /// + /// 更新画笔大小按钮的选中状态 + /// + /// 当前选中的画笔大小 + private void UpdateBrushSizeButtonSelection(int selectedSize) + { + try + { + // 清除所有按钮的选中状态 + btnBrushSize1.Checked = false; + btnBrushSize3.Checked = false; + btnBrushSize5.Checked = false; + btnBrushSize10.Checked = false; + btnBrushSize15.Checked = false; + + // 设置当前选中按钮的选中状态 + switch (selectedSize) + { + case 1: + btnBrushSize1.Checked = true; + break; + case 3: + btnBrushSize3.Checked = true; + break; + case 5: + btnBrushSize5.Checked = true; + break; + case 10: + btnBrushSize10.Checked = true; + break; + case 15: + btnBrushSize15.Checked = true; + break; + } + } + catch (Exception ex) + { + Console.WriteLine("更新画笔大小按钮状态失败: " + ex.Message); + } + } + /// /// 鼠标按下事件 - 处理右击退出绘制状态、左击开始绘制矩形和开始调整区域大小 /// @@ -176,9 +294,8 @@ namespace JoyD.Windows.CS // 检查是否是温差值列 if (dataGridViewTempDiff.CurrentCell.ColumnIndex == dataGridViewTempDiff.Columns["tempDiffValue"].Index) { - // 获取TextBox编辑控件 - TextBox tb = e.Control as TextBox; - if (tb != null) + // 获取TextBox编辑控件 - 使用模式匹配 + if (e.Control is TextBox tb) { // 清除之前的处理程序 tb.KeyPress -= new KeyPressEventHandler(TempDiffValueTextBox_KeyPress); @@ -906,8 +1023,8 @@ namespace JoyD.Windows.CS // 设置高质量绘图 g.SmoothingMode = SmoothingMode.AntiAlias; - // 使用每个区域自己的颜色绘制矩形 - g.DrawRectangle(new Pen(region.Color, 2), region.ImageRectangle); + // 使用每个区域自己的颜色和当前选择的画笔大小绘制矩形 + g.DrawRectangle(new Pen(region.Color, _currentBrushSize), region.ImageRectangle); // 绘制区域序号 using (Font font = new Font("Arial", 12, FontStyle.Bold))