增加精细调整
This commit is contained in:
@@ -54,6 +54,7 @@
|
||||
<Compile Include="Setting.Designer.cs">
|
||||
<DependentUpon>Setting.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolStripNumericUpDown.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Setting.resx">
|
||||
|
||||
@@ -22,11 +22,19 @@ namespace Camera
|
||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
|
||||
this.dataGridView1 = new System.Windows.Forms.DataGridView();
|
||||
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripTextBox1 = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
|
||||
this.toolStripNumericUpDown1 = new ToolStripNumericUpDown();
|
||||
this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
|
||||
this.toolStripNumericUpDown2 = new ToolStripNumericUpDown();
|
||||
this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel();
|
||||
this.toolStripNumericUpDown3 = new ToolStripNumericUpDown();
|
||||
this.toolStripLabel4 = new System.Windows.Forms.ToolStripLabel();
|
||||
this.toolStripNumericUpDown4 = new ToolStripNumericUpDown();
|
||||
this.dataGridView1 = new System.Windows.Forms.DataGridView();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
@@ -66,7 +74,6 @@ namespace Camera
|
||||
this.picBoxCamera.Location = new System.Drawing.Point(0, 0);
|
||||
this.picBoxCamera.Name = "picBoxCamera";
|
||||
this.picBoxCamera.Size = new System.Drawing.Size(700, 515);
|
||||
this.picBoxCamera.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Normal;
|
||||
this.picBoxCamera.TabIndex = 0;
|
||||
this.picBoxCamera.TabStop = false;
|
||||
this.picBoxCamera.SizeChanged += new System.EventHandler(this.PicBoxCamera_SizeChanged);
|
||||
@@ -104,10 +111,18 @@ namespace Camera
|
||||
this.toolStripButton2,
|
||||
this.toolStripButton3,
|
||||
this.toolStripButton4,
|
||||
this.toolStripTextBox1});
|
||||
this.toolStripTextBox1,
|
||||
this.toolStripLabel1,
|
||||
this.toolStripNumericUpDown1,
|
||||
this.toolStripLabel2,
|
||||
this.toolStripNumericUpDown2,
|
||||
this.toolStripLabel3,
|
||||
this.toolStripNumericUpDown3,
|
||||
this.toolStripLabel4,
|
||||
this.toolStripNumericUpDown4});
|
||||
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.toolStrip1.Name = "toolStrip1";
|
||||
this.toolStrip1.Size = new System.Drawing.Size(80, 40);
|
||||
this.toolStrip1.Size = new System.Drawing.Size(58, 25);
|
||||
this.toolStrip1.TabIndex = 0;
|
||||
this.toolStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.toolStrip1_ItemClicked);
|
||||
//
|
||||
@@ -116,7 +131,7 @@ namespace Camera
|
||||
this.toolStripButton1.CheckOnClick = true;
|
||||
this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.toolStripButton1.Name = "toolStripButton1";
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(36, 36);
|
||||
this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
|
||||
this.toolStripButton1.ToolTipText = "修改检测区(点击开启/关闭)";
|
||||
this.toolStripButton1.Click += new System.EventHandler(this.ToolStripButton1_Click);
|
||||
//
|
||||
@@ -125,7 +140,7 @@ namespace Camera
|
||||
this.toolStripButton2.CheckOnClick = true;
|
||||
this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.toolStripButton2.Name = "toolStripButton2";
|
||||
this.toolStripButton2.Size = new System.Drawing.Size(36, 36);
|
||||
this.toolStripButton2.Size = new System.Drawing.Size(23, 22);
|
||||
this.toolStripButton2.ToolTipText = "绘制Led区(点击开启/关闭)";
|
||||
this.toolStripButton2.Click += new System.EventHandler(this.ToolStripButton2_Click);
|
||||
//
|
||||
@@ -133,7 +148,7 @@ namespace Camera
|
||||
//
|
||||
this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.toolStripButton3.Name = "toolStripButton3";
|
||||
this.toolStripButton3.Size = new System.Drawing.Size(36, 36);
|
||||
this.toolStripButton3.Size = new System.Drawing.Size(23, 28);
|
||||
this.toolStripButton3.ToolTipText = "选择颜色";
|
||||
this.toolStripButton3.Visible = false;
|
||||
this.toolStripButton3.Click += new System.EventHandler(this.ToolStripButton3_Click);
|
||||
@@ -142,7 +157,7 @@ namespace Camera
|
||||
//
|
||||
this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
|
||||
this.toolStripButton4.Name = "toolStripButton4";
|
||||
this.toolStripButton4.Size = new System.Drawing.Size(36, 36);
|
||||
this.toolStripButton4.Size = new System.Drawing.Size(23, 28);
|
||||
this.toolStripButton4.ToolTipText = "删除Led区";
|
||||
this.toolStripButton4.Visible = false;
|
||||
this.toolStripButton4.Click += new System.EventHandler(this.ToolStripButton4_Click);
|
||||
@@ -158,6 +173,154 @@ namespace Camera
|
||||
this.toolStripTextBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ToolStripTextBox1_KeyDown);
|
||||
this.toolStripTextBox1.TextChanged += new System.EventHandler(this.ToolStripTextBox1_TextChanged);
|
||||
//
|
||||
// toolStripLabel1
|
||||
//
|
||||
this.toolStripLabel1.Name = "toolStripLabel1";
|
||||
this.toolStripLabel1.Size = new System.Drawing.Size(23, 27);
|
||||
this.toolStripLabel1.Text = "X:";
|
||||
this.toolStripLabel1.Visible = false;
|
||||
//
|
||||
// toolStripNumericUpDown1
|
||||
//
|
||||
this.toolStripNumericUpDown1.AutoSize = false;
|
||||
this.toolStripNumericUpDown1.DecimalPlaces = 0;
|
||||
this.toolStripNumericUpDown1.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown1.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown1.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown1.Name = "toolStripNumericUpDown1";
|
||||
this.toolStripNumericUpDown1.Size = new System.Drawing.Size(60, 27);
|
||||
this.toolStripNumericUpDown1.ToolTipText = "X坐标";
|
||||
this.toolStripNumericUpDown1.Value = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown1.Visible = false;
|
||||
this.toolStripNumericUpDown1.ValueChanged += new System.EventHandler(this.ToolStripNumericUpDown1_ValueChanged);
|
||||
//
|
||||
// toolStripLabel2
|
||||
//
|
||||
this.toolStripLabel2.Name = "toolStripLabel2";
|
||||
this.toolStripLabel2.Size = new System.Drawing.Size(22, 27);
|
||||
this.toolStripLabel2.Text = "Y:";
|
||||
this.toolStripLabel2.Visible = false;
|
||||
//
|
||||
// toolStripNumericUpDown2
|
||||
//
|
||||
this.toolStripNumericUpDown2.AutoSize = false;
|
||||
this.toolStripNumericUpDown2.DecimalPlaces = 0;
|
||||
this.toolStripNumericUpDown2.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown2.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown2.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown2.Name = "toolStripNumericUpDown2";
|
||||
this.toolStripNumericUpDown2.Size = new System.Drawing.Size(60, 27);
|
||||
this.toolStripNumericUpDown2.ToolTipText = "Y坐标";
|
||||
this.toolStripNumericUpDown2.Value = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown2.Visible = false;
|
||||
this.toolStripNumericUpDown2.ValueChanged += new System.EventHandler(this.ToolStripNumericUpDown2_ValueChanged);
|
||||
//
|
||||
// toolStripLabel3
|
||||
//
|
||||
this.toolStripLabel3.Name = "toolStripLabel3";
|
||||
this.toolStripLabel3.Size = new System.Drawing.Size(28, 27);
|
||||
this.toolStripLabel3.Text = "W:";
|
||||
this.toolStripLabel3.Visible = false;
|
||||
//
|
||||
// toolStripNumericUpDown3
|
||||
//
|
||||
this.toolStripNumericUpDown3.AutoSize = false;
|
||||
this.toolStripNumericUpDown3.DecimalPlaces = 0;
|
||||
this.toolStripNumericUpDown3.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown3.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown3.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown3.Name = "toolStripNumericUpDown3";
|
||||
this.toolStripNumericUpDown3.Size = new System.Drawing.Size(60, 27);
|
||||
this.toolStripNumericUpDown3.ToolTipText = "宽度";
|
||||
this.toolStripNumericUpDown3.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown3.Visible = false;
|
||||
this.toolStripNumericUpDown3.ValueChanged += new System.EventHandler(this.ToolStripNumericUpDown3_ValueChanged);
|
||||
//
|
||||
// toolStripLabel4
|
||||
//
|
||||
this.toolStripLabel4.Name = "toolStripLabel4";
|
||||
this.toolStripLabel4.Size = new System.Drawing.Size(25, 27);
|
||||
this.toolStripLabel4.Text = "H:";
|
||||
this.toolStripLabel4.Visible = false;
|
||||
//
|
||||
// toolStripNumericUpDown4
|
||||
//
|
||||
this.toolStripNumericUpDown4.AutoSize = false;
|
||||
this.toolStripNumericUpDown4.DecimalPlaces = 0;
|
||||
this.toolStripNumericUpDown4.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown4.Maximum = new decimal(new int[] {
|
||||
10000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown4.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown4.Name = "toolStripNumericUpDown4";
|
||||
this.toolStripNumericUpDown4.Size = new System.Drawing.Size(60, 27);
|
||||
this.toolStripNumericUpDown4.ToolTipText = "高度";
|
||||
this.toolStripNumericUpDown4.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.toolStripNumericUpDown4.Visible = false;
|
||||
this.toolStripNumericUpDown4.ValueChanged += new System.EventHandler(this.ToolStripNumericUpDown4_ValueChanged);
|
||||
//
|
||||
// dataGridView1
|
||||
//
|
||||
this.dataGridView1.AllowUserToAddRows = false;
|
||||
@@ -172,6 +335,7 @@ namespace Camera
|
||||
this.dataGridView1.RowHeadersVisible = false;
|
||||
this.dataGridView1.RowTemplate.Height = 25;
|
||||
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dataGridView1.Size = new System.Drawing.Size(559, 254);
|
||||
this.dataGridView1.TabIndex = 0;
|
||||
this.dataGridView1.SelectionChanged += new System.EventHandler(this.DataGridView1_SelectionChanged);
|
||||
//
|
||||
@@ -214,6 +378,14 @@ namespace Camera
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton3;
|
||||
private System.Windows.Forms.ToolStripButton toolStripButton4;
|
||||
private System.Windows.Forms.ToolStripTextBox toolStripTextBox1;
|
||||
private System.Windows.Forms.ToolStripLabel toolStripLabel1;
|
||||
private ToolStripNumericUpDown toolStripNumericUpDown1;
|
||||
private System.Windows.Forms.ToolStripLabel toolStripLabel2;
|
||||
private ToolStripNumericUpDown toolStripNumericUpDown2;
|
||||
private System.Windows.Forms.ToolStripLabel toolStripLabel3;
|
||||
private ToolStripNumericUpDown toolStripNumericUpDown3;
|
||||
private System.Windows.Forms.ToolStripLabel toolStripLabel4;
|
||||
private ToolStripNumericUpDown toolStripNumericUpDown4;
|
||||
private System.Windows.Forms.DataGridView dataGridView1;
|
||||
}
|
||||
}
|
||||
@@ -18,8 +18,8 @@ namespace Camera
|
||||
private bool _isDrawing = false;
|
||||
private bool _isMoving = false;
|
||||
private bool _isResizing = false;
|
||||
private Point _startPoint;
|
||||
private Point _currentMousePoint;
|
||||
private Point? _startPoint;
|
||||
private Point? _currentMousePoint;
|
||||
private Rectangle _originalZone;
|
||||
private bool _isEditingDetectionZone = false;
|
||||
private bool _isEditingLedZone = false;
|
||||
@@ -70,20 +70,22 @@ namespace Camera
|
||||
|
||||
private void InitializeDataGridView()
|
||||
{
|
||||
dataGridView1.Columns.Clear();
|
||||
dataGridView1.Columns.Add("Index", "索引");
|
||||
dataGridView1.Columns.Add("X", "X坐标");
|
||||
dataGridView1.Columns.Add("Y", "Y坐标");
|
||||
dataGridView1.Columns.Add("Width", "宽度");
|
||||
dataGridView1.Columns.Add("Height", "高度");
|
||||
dataGridView1.Columns.Add("Color", "颜色");
|
||||
if (dataGridView1.Columns.Count == 0)
|
||||
{
|
||||
dataGridView1.Columns.Add("Index", "索引");
|
||||
dataGridView1.Columns.Add("X", "X坐标");
|
||||
dataGridView1.Columns.Add("Y", "Y坐标");
|
||||
dataGridView1.Columns.Add("Width", "宽度");
|
||||
dataGridView1.Columns.Add("Height", "高度");
|
||||
dataGridView1.Columns.Add("Color", "颜色");
|
||||
|
||||
dataGridView1.Columns["Index"].Width = 50;
|
||||
dataGridView1.Columns["X"].Width = 60;
|
||||
dataGridView1.Columns["Y"].Width = 60;
|
||||
dataGridView1.Columns["Width"].Width = 60;
|
||||
dataGridView1.Columns["Height"].Width = 60;
|
||||
dataGridView1.Columns["Color"].Width = 70;
|
||||
dataGridView1.Columns["Index"].Width = 50;
|
||||
dataGridView1.Columns["X"].Width = 60;
|
||||
dataGridView1.Columns["Y"].Width = 60;
|
||||
dataGridView1.Columns["Width"].Width = 60;
|
||||
dataGridView1.Columns["Height"].Width = 60;
|
||||
dataGridView1.Columns["Color"].Width = 70;
|
||||
}
|
||||
}
|
||||
|
||||
private void Setting_Load(object sender, EventArgs e)
|
||||
@@ -359,10 +361,14 @@ namespace Camera
|
||||
}
|
||||
}
|
||||
|
||||
int x = (int)(Math.Min(_startPoint.X, _startPoint.X + (_currentMousePoint.X - _resizeStartPoint.X) / scaleX) * scaleX);
|
||||
int y = (int)(Math.Min(_startPoint.Y, _startPoint.Y + (_currentMousePoint.Y - _resizeStartPoint.Y) / scaleY) * scaleY);
|
||||
int w = (int)(Math.Abs(_currentMousePoint.X - _resizeStartPoint.X));
|
||||
int h = (int)(Math.Abs(_currentMousePoint.Y - _resizeStartPoint.Y));
|
||||
int x = 0, y = 0, w = 0, h = 0;
|
||||
if (_startPoint.HasValue && _currentMousePoint.HasValue)
|
||||
{
|
||||
x = (int)(Math.Min(_startPoint.Value.X, _startPoint.Value.X + (_currentMousePoint.Value.X - _resizeStartPoint.X) / scaleX) * scaleX);
|
||||
y = (int)(Math.Min(_startPoint.Value.Y, _startPoint.Value.Y + (_currentMousePoint.Value.Y - _resizeStartPoint.Y) / scaleY) * scaleY);
|
||||
w = (int)(Math.Abs(_currentMousePoint.Value.X - _resizeStartPoint.X));
|
||||
h = (int)(Math.Abs(_currentMousePoint.Value.Y - _resizeStartPoint.Y));
|
||||
}
|
||||
|
||||
if (w > 5 && h > 5)
|
||||
{
|
||||
@@ -876,10 +882,14 @@ namespace Camera
|
||||
|
||||
if (_isDrawing)
|
||||
{
|
||||
int x = Math.Min(_startPoint.X, imagePoint.X);
|
||||
int y = Math.Min(_startPoint.Y, imagePoint.Y);
|
||||
int width = Math.Abs(imagePoint.X - _startPoint.X);
|
||||
int height = Math.Abs(imagePoint.Y - _startPoint.Y);
|
||||
int x = 0, y = 0, width = 0, height = 0;
|
||||
if (_startPoint.HasValue)
|
||||
{
|
||||
x = Math.Min(_startPoint.Value.X, imagePoint.X);
|
||||
y = Math.Min(_startPoint.Value.Y, imagePoint.Y);
|
||||
width = Math.Abs(imagePoint.X - _startPoint.Value.X);
|
||||
height = Math.Abs(imagePoint.Y - _startPoint.Value.Y);
|
||||
}
|
||||
|
||||
if (width > 5 && height > 5)
|
||||
{
|
||||
@@ -1015,6 +1025,17 @@ namespace Camera
|
||||
if (dataGridView1.SelectedRows.Count > 0)
|
||||
{
|
||||
_selectedZoneIndex = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["Index"].Value);
|
||||
// 更新位置和宽高值
|
||||
if (_selectedZoneIndex >= 0 && _camera != null)
|
||||
{
|
||||
Rectangle zone = _camera.GetLedZone(_selectedZoneIndex);
|
||||
toolStripNumericUpDown1.Value = zone.X;
|
||||
toolStripNumericUpDown2.Value = zone.Y;
|
||||
toolStripNumericUpDown3.Value = zone.Width;
|
||||
toolStripNumericUpDown4.Value = zone.Height;
|
||||
}
|
||||
// 确保控件在就绪状态下显示
|
||||
UpdateLedZoneButtonsVisibility(0);
|
||||
picBoxCamera.Invalidate();
|
||||
}
|
||||
}
|
||||
@@ -1214,6 +1235,24 @@ namespace Camera
|
||||
toolStripButton4.Visible = false;
|
||||
toolStripTextBox1.Visible = false;
|
||||
toolStripTextBox1.Text = "";
|
||||
// 显示位置和宽高设置框
|
||||
toolStripLabel1.Visible = true;
|
||||
toolStripNumericUpDown1.Visible = true;
|
||||
toolStripLabel2.Visible = true;
|
||||
toolStripNumericUpDown2.Visible = true;
|
||||
toolStripLabel3.Visible = true;
|
||||
toolStripNumericUpDown3.Visible = true;
|
||||
toolStripLabel4.Visible = true;
|
||||
toolStripNumericUpDown4.Visible = true;
|
||||
// 更新位置和宽高值
|
||||
if (_selectedZoneIndex >= 0 && _camera != null)
|
||||
{
|
||||
Rectangle zone = _camera.GetLedZone(_selectedZoneIndex);
|
||||
toolStripNumericUpDown1.Value = zone.X;
|
||||
toolStripNumericUpDown2.Value = zone.Y;
|
||||
toolStripNumericUpDown3.Value = zone.Width;
|
||||
toolStripNumericUpDown4.Value = zone.Height;
|
||||
}
|
||||
break;
|
||||
case 1: // 选中状态
|
||||
toolStripButton2.Visible = false;
|
||||
@@ -1221,6 +1260,15 @@ namespace Camera
|
||||
toolStripButton4.Visible = true;
|
||||
toolStripTextBox1.Visible = true;
|
||||
toolStripTextBox1.Text = _currentLedIndex.ToString();
|
||||
// 不显示位置和宽高设置框
|
||||
toolStripLabel1.Visible = false;
|
||||
toolStripNumericUpDown1.Visible = false;
|
||||
toolStripLabel2.Visible = false;
|
||||
toolStripNumericUpDown2.Visible = false;
|
||||
toolStripLabel3.Visible = false;
|
||||
toolStripNumericUpDown3.Visible = false;
|
||||
toolStripLabel4.Visible = false;
|
||||
toolStripNumericUpDown4.Visible = false;
|
||||
break;
|
||||
case 2: // 绘制状态
|
||||
toolStripButton2.Visible = true;
|
||||
@@ -1228,6 +1276,14 @@ namespace Camera
|
||||
toolStripButton4.Visible = false;
|
||||
toolStripTextBox1.Visible = false;
|
||||
toolStripTextBox1.Text = "";
|
||||
toolStripLabel1.Visible = false;
|
||||
toolStripNumericUpDown1.Visible = false;
|
||||
toolStripLabel2.Visible = false;
|
||||
toolStripNumericUpDown2.Visible = false;
|
||||
toolStripLabel3.Visible = false;
|
||||
toolStripNumericUpDown3.Visible = false;
|
||||
toolStripLabel4.Visible = false;
|
||||
toolStripNumericUpDown4.Visible = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1246,5 +1302,61 @@ namespace Camera
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// X坐标相关事件
|
||||
private void ToolStripNumericUpDown1_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
int index = _currentLedIndex >= 0 ? _currentLedIndex : _selectedZoneIndex;
|
||||
if (index < 0 || _camera == null) return;
|
||||
|
||||
int x = (int)toolStripNumericUpDown1.Value;
|
||||
Rectangle zone = _camera.GetLedZone(index);
|
||||
zone.X = x;
|
||||
_camera.SetLedZone(index, zone);
|
||||
UpdateDataGridView();
|
||||
picBoxCamera.Invalidate();
|
||||
}
|
||||
|
||||
// Y坐标相关事件
|
||||
private void ToolStripNumericUpDown2_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
int index = _currentLedIndex >= 0 ? _currentLedIndex : _selectedZoneIndex;
|
||||
if (index < 0 || _camera == null) return;
|
||||
|
||||
int y = (int)toolStripNumericUpDown2.Value;
|
||||
Rectangle zone = _camera.GetLedZone(index);
|
||||
zone.Y = y;
|
||||
_camera.SetLedZone(index, zone);
|
||||
UpdateDataGridView();
|
||||
picBoxCamera.Invalidate();
|
||||
}
|
||||
|
||||
// 宽度相关事件
|
||||
private void ToolStripNumericUpDown3_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
int index = _currentLedIndex >= 0 ? _currentLedIndex : _selectedZoneIndex;
|
||||
if (index < 0 || _camera == null) return;
|
||||
|
||||
int width = (int)toolStripNumericUpDown3.Value;
|
||||
Rectangle zone = _camera.GetLedZone(index);
|
||||
zone.Width = width;
|
||||
_camera.SetLedZone(index, zone);
|
||||
UpdateDataGridView();
|
||||
picBoxCamera.Invalidate();
|
||||
}
|
||||
|
||||
// 高度相关事件
|
||||
private void ToolStripNumericUpDown4_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
int index = _currentLedIndex >= 0 ? _currentLedIndex : _selectedZoneIndex;
|
||||
if (index < 0 || _camera == null) return;
|
||||
|
||||
int height = (int)toolStripNumericUpDown4.Value;
|
||||
Rectangle zone = _camera.GetLedZone(index);
|
||||
zone.Height = height;
|
||||
_camera.SetLedZone(index, zone);
|
||||
UpdateDataGridView();
|
||||
picBoxCamera.Invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
111
Windows/CS/Framework4.0/Camera/Camera/ToolStripNumericUpDown.cs
Normal file
111
Windows/CS/Framework4.0/Camera/Camera/ToolStripNumericUpDown.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Camera
|
||||
{
|
||||
// 自定义ToolStripNumericUpDown控件
|
||||
[System.ComponentModel.ToolboxItem(false)]
|
||||
[System.ComponentModel.DesignerCategory("Code")]
|
||||
public class ToolStripNumericUpDown : ToolStripControlHost
|
||||
{
|
||||
private NumericUpDown _numericUpDown;
|
||||
|
||||
// 公开的无参构造函数 - 设计器必需
|
||||
public ToolStripNumericUpDown() : this(new NumericUpDown()) { }
|
||||
|
||||
// 私有的带参数构造函数 - 仅用于无参构造函数调用
|
||||
private ToolStripNumericUpDown(NumericUpDown numericUpDown) : base(numericUpDown)
|
||||
{
|
||||
_numericUpDown = numericUpDown ?? throw new ArgumentNullException(nameof(numericUpDown));
|
||||
this.AutoSize = false;
|
||||
|
||||
// 设置NumericUpDown的基本属性
|
||||
_numericUpDown.Size = new Size(60, 22);
|
||||
_numericUpDown.TextAlign = HorizontalAlignment.Right;
|
||||
}
|
||||
|
||||
[System.ComponentModel.Browsable(false)]
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public NumericUpDown NumericUpDownControl => _numericUpDown;
|
||||
|
||||
// 下面的属性、事件都保持不变
|
||||
public decimal Value
|
||||
{
|
||||
get => _numericUpDown.Value;
|
||||
set => _numericUpDown.Value = value;
|
||||
}
|
||||
|
||||
public decimal Minimum
|
||||
{
|
||||
get => _numericUpDown.Minimum;
|
||||
set => _numericUpDown.Minimum = value;
|
||||
}
|
||||
|
||||
public decimal Maximum
|
||||
{
|
||||
get => _numericUpDown.Maximum;
|
||||
set => _numericUpDown.Maximum = value;
|
||||
}
|
||||
|
||||
public decimal Increment
|
||||
{
|
||||
get => _numericUpDown.Increment;
|
||||
set => _numericUpDown.Increment = value;
|
||||
}
|
||||
|
||||
public int DecimalPlaces
|
||||
{
|
||||
get => _numericUpDown.DecimalPlaces;
|
||||
set => _numericUpDown.DecimalPlaces = value;
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public new string Text
|
||||
{
|
||||
get => _numericUpDown.Text;
|
||||
set => _numericUpDown.Text = value;
|
||||
}
|
||||
|
||||
public event EventHandler ValueChanged;
|
||||
|
||||
protected override void OnSubscribeControlEvents(Control control)
|
||||
{
|
||||
base.OnSubscribeControlEvents(control);
|
||||
if (control is NumericUpDown nud)
|
||||
nud.ValueChanged += Nud_ValueChanged;
|
||||
}
|
||||
|
||||
protected override void OnUnsubscribeControlEvents(Control control)
|
||||
{
|
||||
base.OnUnsubscribeControlEvents(control);
|
||||
if (control is NumericUpDown nud)
|
||||
nud.ValueChanged -= Nud_ValueChanged;
|
||||
}
|
||||
|
||||
private void Nud_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
ValueChanged?.Invoke(this, e);
|
||||
}
|
||||
|
||||
protected override Size DefaultSize => new Size(60, 27);
|
||||
|
||||
// 重写GetPreferredSize以改进布局
|
||||
public override Size GetPreferredSize(Size constrainingSize)
|
||||
{
|
||||
return new Size(base.GetPreferredSize(constrainingSize).Width, 27);
|
||||
}
|
||||
|
||||
// 清理资源
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && _numericUpDown != null)
|
||||
{
|
||||
_numericUpDown.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user