using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO.Ports; using System.Windows.Forms; using PaintDotNet.Base.CommTool; using PaintDotNet.CustomControl; using PaintDotNet.GeneralAnalysis.Countometer; using PaintDotNet.ImageCollect; using PaintDotNet.Base.SettingModel; using StageController; using StageController.M3H; using PaintDotNet.Hardware; namespace PaintDotNet.GeneralAnalysis { /// /// 积数仪 /// internal class GeneralCountometerDialog : FloatingToolForm { #region 控件相关 private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button btnShowHistory; private System.Windows.Forms.Button btnSave; private System.Windows.Forms.Button btnHotKey; private System.Windows.Forms.Button btnAssay; private System.Windows.Forms.Button btnPreView; private System.Windows.Forms.Button btnSetting; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.Label lblSummation; private System.Windows.Forms.DataGridView dgvKeyList; private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.GroupBox groupBox5; private System.Windows.Forms.GroupBox groupBox6; private System.Windows.Forms.Button btnTissueAdd; private System.Windows.Forms.Button btnTissueEdit; private System.Windows.Forms.Button btnTissueDelete; private System.Windows.Forms.ListBox lstTissuesList; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Label lblNull; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.DataGridViewTextBoxColumn hotKey; private System.Windows.Forms.DataGridViewTextBoxColumn name; private System.Windows.Forms.DataGridViewTextBoxColumn count; private System.Windows.Forms.DataGridViewTextBoxColumn ratio; private System.ComponentModel.IContainer components; private System.Windows.Forms.DataVisualization.Charting.Chart chart1; private System.Windows.Forms.ToolTip toolTip1; private void InitializeLanguageText() { this.lblNull.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.Nostatistics.text"); this.groupBox5.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.X,Yaxiscontrol.text"); this.groupBox6.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.imitatelensarea.text"); this.Text = PdnResources.GetString("Menu.GeneralAnalysis.Countometer.Text"); this.lblSummation.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.total.text") + ":0"; this.hotKey.HeaderText = PdnResources.GetString("Menu.icon.text"); this.name.HeaderText = PdnResources.GetString("Menu.name.text"); this.count.HeaderText = PdnResources.GetString("Menu.Generalanalysis.Integrator.Quantity.text"); this.ratio.HeaderText = PdnResources.GetString("Menu.proportion.text"); this.groupBox4.Text = PdnResources.GetString("Menu.Organizationinformation.text"); this.groupBox1.Text = PdnResources.GetString("Menu.operation.text"); this.btnShowHistory.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.HistoryView.text"); this.btnSave.Text = PdnResources.GetString("Menu.File.Save.Text"); this.btnHotKey.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.Definekey.text"); this.btnAssay.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.ensure.text"); this.btnPreView.Text = PdnResources.GetString("Menu.Preview.text"); this.btnSetting.Text = PdnResources.GetString("Menu.Setting.Text"); this.groupBox2.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.Measuringtissue.text"); this.groupBox3.Text = PdnResources.GetString("Menu.Organizationinformation.text"); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.btnShowHistory = new System.Windows.Forms.Button(); this.btnSave = new System.Windows.Forms.Button(); this.btnHotKey = new System.Windows.Forms.Button(); this.btnAssay = new System.Windows.Forms.Button(); this.btnPreView = new System.Windows.Forms.Button(); this.btnSetting = new System.Windows.Forms.Button(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.lstTissuesList = new System.Windows.Forms.ListBox(); this.btnTissueEdit = new System.Windows.Forms.Button(); this.btnTissueDelete = new System.Windows.Forms.Button(); this.btnTissueAdd = new System.Windows.Forms.Button(); this.groupBox3 = new System.Windows.Forms.GroupBox(); this.lblSummation = new System.Windows.Forms.Label(); this.dgvKeyList = new System.Windows.Forms.DataGridView(); this.hotKey = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.name = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.count = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ratio = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.groupBox4 = new System.Windows.Forms.GroupBox(); this.lblNull = new System.Windows.Forms.Label(); this.groupBox5 = new System.Windows.Forms.GroupBox(); this.panel1 = new System.Windows.Forms.Panel(); this.groupBox6 = new System.Windows.Forms.GroupBox(); this.panel2 = new System.Windows.Forms.Panel(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dgvKeyList)).BeginInit(); this.groupBox4.SuspendLayout(); this.groupBox5.SuspendLayout(); this.groupBox6.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit(); this.SuspendLayout(); // // groupBox1 // this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox1.Controls.Add(this.btnShowHistory); this.groupBox1.Controls.Add(this.btnSave); this.groupBox1.Controls.Add(this.btnHotKey); this.groupBox1.Controls.Add(this.btnAssay); this.groupBox1.Controls.Add(this.btnPreView); this.groupBox1.Controls.Add(this.btnSetting); this.groupBox1.Location = new System.Drawing.Point(12, 12); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(1216, 79); this.groupBox1.TabIndex = 2; this.groupBox1.TabStop = false; this.groupBox1.Text = "操作"; // // btnShowHistory // this.btnShowHistory.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnShowHistory.Location = new System.Drawing.Point(905, 24); this.btnShowHistory.Name = "btnShowHistory"; this.btnShowHistory.Size = new System.Drawing.Size(96, 37); this.btnShowHistory.TabIndex = 5; this.btnShowHistory.Text = "历史查看"; this.btnShowHistory.UseVisualStyleBackColor = true; this.btnShowHistory.Click += new System.EventHandler(this.btnShowHistory_Click); // // btnSave // this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnSave.Location = new System.Drawing.Point(808, 24); this.btnSave.Name = "btnSave"; this.btnSave.Size = new System.Drawing.Size(96, 37); this.btnSave.TabIndex = 4; this.btnSave.Text = "保存"; this.btnSave.UseVisualStyleBackColor = true; this.btnSave.Click += new System.EventHandler(this.btnSave_Click); // // btnHotKey // this.btnHotKey.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnHotKey.Location = new System.Drawing.Point(711, 24); this.btnHotKey.Name = "btnHotKey"; this.btnHotKey.Size = new System.Drawing.Size(96, 37); this.btnHotKey.TabIndex = 3; this.btnHotKey.Text = "定义键"; this.btnHotKey.UseVisualStyleBackColor = true; this.btnHotKey.Click += new System.EventHandler(this.btnHotKey_Click); // // btnAssay // this.btnAssay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnAssay.Location = new System.Drawing.Point(614, 24); this.btnAssay.Name = "btnAssay"; this.btnAssay.Size = new System.Drawing.Size(96, 37); this.btnAssay.TabIndex = 2; this.btnAssay.Text = "测定"; this.btnAssay.UseVisualStyleBackColor = true; this.btnAssay.Click += new System.EventHandler(this.btnAssay_Click); // // btnPreView // this.btnPreView.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnPreView.Location = new System.Drawing.Point(1099, 24); this.btnPreView.Name = "btnPreView"; this.btnPreView.Size = new System.Drawing.Size(96, 37); this.btnPreView.TabIndex = 1; this.btnPreView.Text = "预览"; this.btnPreView.UseVisualStyleBackColor = true; this.btnPreView.Click += new System.EventHandler(this.btnPreView_Click); // // btnSetting // this.btnSetting.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnSetting.Location = new System.Drawing.Point(1002, 24); this.btnSetting.Name = "btnSetting"; this.btnSetting.Size = new System.Drawing.Size(96, 37); this.btnSetting.TabIndex = 0; this.btnSetting.Text = "设置"; this.btnSetting.UseVisualStyleBackColor = true; this.btnSetting.Click += new System.EventHandler(this.btnSetting_Click); // // groupBox2 // this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); this.groupBox2.Controls.Add(this.lstTissuesList); this.groupBox2.Controls.Add(this.btnTissueEdit); this.groupBox2.Controls.Add(this.btnTissueDelete); this.groupBox2.Controls.Add(this.btnTissueAdd); this.groupBox2.Location = new System.Drawing.Point(12, 97); this.groupBox2.Name = "groupBox2"; this.groupBox2.Size = new System.Drawing.Size(287, 567); this.groupBox2.TabIndex = 3; this.groupBox2.TabStop = false; // // lstTissuesList // this.lstTissuesList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); this.lstTissuesList.FormattingEnabled = true; this.lstTissuesList.ItemHeight = 12; this.lstTissuesList.Location = new System.Drawing.Point(15, 60); this.lstTissuesList.Name = "lstTissuesList"; this.lstTissuesList.Size = new System.Drawing.Size(258, 484); this.lstTissuesList.TabIndex = 0; this.lstTissuesList.SelectedIndexChanged += new System.EventHandler(this.lstTissuesList_SelectedIndexChanged); // // btnTissueEdit // this.btnTissueEdit.Location = new System.Drawing.Point(184, 24); this.btnTissueEdit.Name = "btnTissueEdit"; this.btnTissueEdit.Size = new System.Drawing.Size(41, 26); this.btnTissueEdit.TabIndex = 10; this.btnTissueEdit.UseVisualStyleBackColor = true; this.btnTissueEdit.Click += new System.EventHandler(this.btnTissueEdit_Click); // // btnTissueDelete // this.btnTissueDelete.Location = new System.Drawing.Point(232, 24); this.btnTissueDelete.Name = "btnTissueDelete"; this.btnTissueDelete.Size = new System.Drawing.Size(41, 26); this.btnTissueDelete.TabIndex = 9; this.btnTissueDelete.UseVisualStyleBackColor = true; this.btnTissueDelete.Click += new System.EventHandler(this.btnTissueDelete_Click); // // btnTissueAdd // this.btnTissueAdd.Location = new System.Drawing.Point(136, 24); this.btnTissueAdd.Name = "btnTissueAdd"; this.btnTissueAdd.Size = new System.Drawing.Size(41, 26); this.btnTissueAdd.TabIndex = 8; this.btnTissueAdd.UseVisualStyleBackColor = true; this.btnTissueAdd.Click += new System.EventHandler(this.btnTissueAdd_Click); // // groupBox3 // this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); this.groupBox3.Controls.Add(this.lblSummation); this.groupBox3.Controls.Add(this.dgvKeyList); this.groupBox3.Location = new System.Drawing.Point(305, 97); this.groupBox3.Name = "groupBox3"; this.groupBox3.Size = new System.Drawing.Size(516, 321); this.groupBox3.TabIndex = 4; this.groupBox3.TabStop = false; this.groupBox3.Text = "组织信息"; // // lblSummation // this.lblSummation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.lblSummation.AutoSize = true; this.lblSummation.Location = new System.Drawing.Point(6, 294); this.lblSummation.Name = "lblSummation"; this.lblSummation.Size = new System.Drawing.Size(41, 12); this.lblSummation.TabIndex = 1; this.lblSummation.Text = "合计:"; // // dgvKeyList // this.dgvKeyList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.dgvKeyList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvKeyList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.hotKey, this.name, this.count, this.ratio}); this.dgvKeyList.Location = new System.Drawing.Point(6, 24); this.dgvKeyList.Name = "dgvKeyList"; this.dgvKeyList.RowHeadersVisible = false; this.dgvKeyList.RowHeadersWidth = 51; this.dgvKeyList.RowTemplate.Height = 27; this.dgvKeyList.Size = new System.Drawing.Size(502, 255); this.dgvKeyList.TabIndex = 0; this.dgvKeyList.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvKeyList_CellClick); // // hotKey // this.hotKey.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; this.hotKey.DataPropertyName = "hotKey"; dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.hotKey.DefaultCellStyle = dataGridViewCellStyle1; this.hotKey.MinimumWidth = 6; this.hotKey.Name = "hotKey"; this.hotKey.ReadOnly = true; this.hotKey.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.hotKey.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // name // this.name.DataPropertyName = "name"; this.name.MinimumWidth = 6; this.name.Name = "name"; this.name.ReadOnly = true; this.name.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; this.name.Width = 125; // // count // this.count.MinimumWidth = 6; this.count.Name = "count"; this.count.ReadOnly = true; this.count.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; this.count.Width = 125; // // ratio // this.ratio.MinimumWidth = 6; this.ratio.Name = "ratio"; this.ratio.ReadOnly = true; this.ratio.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; this.ratio.Width = 125; // // groupBox4 // this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.groupBox4.Controls.Add(this.lblNull); this.groupBox4.Controls.Add(this.chart1); this.groupBox4.Location = new System.Drawing.Point(305, 424); this.groupBox4.Name = "groupBox4"; this.groupBox4.Size = new System.Drawing.Size(266, 240); this.groupBox4.TabIndex = 5; this.groupBox4.TabStop = false; this.groupBox4.Text = "组织信息"; // // lblNull // this.lblNull.AutoSize = true; this.lblNull.Location = new System.Drawing.Point(84, 99); this.lblNull.Name = "lblNull"; this.lblNull.Size = new System.Drawing.Size(0, 12); this.lblNull.TabIndex = 1; // // groupBox5 // this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.groupBox5.Controls.Add(this.panel1); this.groupBox5.Location = new System.Drawing.Point(577, 424); this.groupBox5.Name = "groupBox5"; this.groupBox5.Size = new System.Drawing.Size(243, 240); this.groupBox5.TabIndex = 6; this.groupBox5.TabStop = false; this.groupBox5.Text = "X、Y轴控制"; // // panel1 // this.panel1.Location = new System.Drawing.Point(22, 24); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(215, 210); this.panel1.TabIndex = 0; // // groupBox6 // this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox6.Controls.Add(this.panel2); this.groupBox6.Location = new System.Drawing.Point(827, 97); this.groupBox6.Name = "groupBox6"; this.groupBox6.Size = new System.Drawing.Size(401, 567); this.groupBox6.TabIndex = 7; this.groupBox6.TabStop = false; this.groupBox6.Text = "模拟镜头区域"; // // panel2 // this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.panel2.BackColor = System.Drawing.SystemColors.Control; this.panel2.Location = new System.Drawing.Point(13, 90); this.panel2.MinimumSize = new System.Drawing.Size(100, 100); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(374, 471); this.panel2.TabIndex = 0; this.panel2.SizeChanged += new System.EventHandler(this.panel2_SizeChanged); // // chart1 // this.chart1.BackColor = System.Drawing.SystemColors.Control; chartArea1.BackColor = System.Drawing.SystemColors.Control; chartArea1.Name = "ChartArea1"; this.chart1.ChartAreas.Add(chartArea1); legend1.BackColor = System.Drawing.SystemColors.Control; legend1.Name = "Legend1"; this.chart1.Legends.Add(legend1); this.chart1.Location = new System.Drawing.Point(18, 34); this.chart1.Name = "chart1"; series1.ChartArea = "ChartArea1"; series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; series1.Color = System.Drawing.SystemColors.Control; series1.LabelBackColor = System.Drawing.SystemColors.Control; series1.Legend = "Legend1"; series1.Name = "Series1"; this.chart1.Series.Add(series1); this.chart1.Size = new System.Drawing.Size(230, 183); this.chart1.TabIndex = 0; this.chart1.Text = "chart1"; // // GeneralCountometerDialog // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1240, 676); this.Controls.Add(this.groupBox6); this.Controls.Add(this.groupBox5); this.Controls.Add(this.groupBox4); this.Controls.Add(this.groupBox3); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox1); this.Location = new System.Drawing.Point(0, 0); this.Name = "GeneralCountometerDialog"; this.Text = "积数仪"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GeneralCountometerDialog_FormClosing); this.Load += new System.EventHandler(this.GeneralCountometerDialog_Load); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.GeneralCountometerDialog_KeyDown); this.Controls.SetChildIndex(this.groupBox1, 0); this.Controls.SetChildIndex(this.groupBox2, 0); this.Controls.SetChildIndex(this.groupBox3, 0); this.Controls.SetChildIndex(this.groupBox4, 0); this.Controls.SetChildIndex(this.groupBox5, 0); this.Controls.SetChildIndex(this.groupBox6, 0); this.groupBox1.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox3.ResumeLayout(false); this.groupBox3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.dgvKeyList)).EndInit(); this.groupBox4.ResumeLayout(false); this.groupBox4.PerformLayout(); this.groupBox5.ResumeLayout(false); this.groupBox6.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit(); this.ResumeLayout(false); } #endregion protected AppWorkspace m_appWorkspace; protected AxisController m_Stage; private SQLiteHelper m_sqlHelper; private DataTable m_tissuesList; private DataTable m_hotKeyList; private string m_tissuesId; private int m_total = 0; private int m_selectedIndex = 0; private bool m_isAssay; private string m_bgColor = "#ffffffff"; private string m_lensColor = "#ffffffff"; private string m_lensBgColor = "#ffffffff"; private string m_gridsColor = "#ffffffff"; private string m_blocksColor = "#ffffffff"; private string m_portName; private int m_baudRate; private string m_checkBits; private int m_step = 1000; private int m_pointRatio; private double m_pointX; private double m_pointY; private int m_rangeRatio; private double m_rangeX; private double m_rangeY; private AssayUserControl m_assayControl; private int m_assayRectX = 0; private int m_assayRectY = 0; private List> m_rectList; private bool m_isFinish = false; public GeneralCountometerDialog(AppWorkspace appWorkspace) { m_appWorkspace = appWorkspace; InitializeComponent(); InitializeLanguageText(); InitializeButtonBackgroudImage(); InitializeToolTip(); InitializeData(); this.panel1.Controls.Add(initSportCircal(100)); SettingLoad(); } public void InitStage() { m_Stage = AxisController.GetInstance(); if (!m_Stage.IsOpen) { MessageBox.Show(PdnResources.GetString("Message.AxisController.NotConnected")); this.Close(); } } private void InitializeButtonBackgroudImage() { this.btnTissueAdd.FlatStyle = FlatStyle.Flat; this.btnTissueAdd.FlatAppearance.BorderSize = 0; this.btnTissueAdd.BackgroundImageLayout = ImageLayout.Center; this.btnTissueAdd.BackgroundImage = PdnResources.GetImageResource("Icons.MenuRulesListAddIcon.png").Reference; this.btnTissueEdit.FlatStyle = FlatStyle.Flat; this.btnTissueEdit.FlatAppearance.BorderSize = 0; this.btnTissueEdit.BackgroundImageLayout = ImageLayout.Center; this.btnTissueEdit.BackgroundImage = PdnResources.GetImageResource("Icons.MenuRulesListEditIcon.png").Reference; this.btnTissueDelete.FlatStyle = FlatStyle.Flat; this.btnTissueDelete.FlatAppearance.BorderSize = 0; this.btnTissueDelete.BackgroundImageLayout = ImageLayout.Center; this.btnTissueDelete.BackgroundImage = PdnResources.GetImageResource("Icons.MenuRulesListDeleteIcon.png").Reference; } private void InitializeToolTip() { this.toolTip1 = new ToolTip(); this.toolTip1.SetToolTip(this.btnTissueAdd, PdnResources.GetString("Menu.New.text")); this.toolTip1.SetToolTip(this.btnTissueEdit, PdnResources.GetString("Menu.modify.Text")); this.toolTip1.SetToolTip(this.btnTissueDelete, PdnResources.GetString("Menu.Edit.Delete.Text")); this.toolTip1.ShowAlways = true; } private void InitializeData() { m_rectList = new List>(); m_sqlHelper = new SQLiteHelper(); //连接数据库 m_sqlHelper.Connect(); TissuesListLoad(); } private void init() { btnHotKey.Enabled = true; btnSetting.Enabled = true; m_isAssay = false; btnAssay.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.ensure.text"); m_isFinish = false; m_total = 0; m_assayRectX = 0; m_assayRectY = 0; UpdateCenterCatalog(); m_rectList.Clear(); AssayUIRefresh(); } /// /// 运动模式操作台 /// public CircleControl initSportCircal(int size) { var circleSportControl = new CircleControl(size); circleSportControl.mouseUp += new EventHandler(sportMouseUp); circleSportControl.mouseDown += new EventHandler(sportMouseDown); return circleSportControl; } #region 运动圆环 protected virtual void sportMouseDown(object sender, EventArgs e) { var circleSportControl = (CircleControl)sender; if (circleSportControl._position < 8) { var p = circleSportControl._position; if (p < 0 || p > 7) return; var map = circleSportControl.positionMap[p]; m_Stage.Move(1000 * map[0], 1000 * map[1]); } else { var direction = circleSportControl._position - 8; m_Stage.Split(direction); } } // 运动圆环外层按钮弹起 protected virtual void sportMouseUp(object sender, EventArgs e) { var circleSportControl = (CircleControl)sender; if (circleSportControl._position > 7) m_Stage.FreeStage(); } #endregion public void SettingLoad() { string select_sql = "select * from mic_countometer_setting "; //查询的SQL语句 DataTable dt = m_sqlHelper.ExecuteDataTable(select_sql, null); //执行查询操作,结果存放在dt中 if (dt != null && dt.Rows.Count > 0) { m_bgColor = dt.Rows[0]["bg_color"].ToString(); m_lensColor = dt.Rows[0]["lens_color"].ToString(); m_lensBgColor = dt.Rows[0]["lens_bg_color"].ToString(); m_gridsColor = dt.Rows[0]["grids_color"].ToString(); m_blocksColor = dt.Rows[0]["blocks_color"].ToString(); m_portName = dt.Rows[0]["com_port"].ToString(); m_baudRate = int.Parse(dt.Rows[0]["base_bps"].ToString()); m_checkBits = dt.Rows[0]["base_check_bits"].ToString(); m_step = int.Parse(dt.Rows[0]["step"].ToString()); m_pointRatio = int.Parse(dt.Rows[0]["point_ratio"].ToString()); m_pointX = int.Parse(dt.Rows[0]["point_x"].ToString()); m_pointY = int.Parse(dt.Rows[0]["point_y"].ToString()); m_rangeRatio = int.Parse(dt.Rows[0]["range_ratio"].ToString()); m_rangeX = int.Parse(dt.Rows[0]["range_x"].ToString()); m_rangeY = int.Parse(dt.Rows[0]["range_y"].ToString()); AssayUIRefresh(); } } public void TissuesListLoad() { SelectTissuesList(); TissuesKeyRefresh(); } private void SelectTissuesList() { // 组织列表 string select_sql = "select * from mic_tissues "; //查询的SQL语句 m_tissuesList = m_sqlHelper.ExecuteDataTable(select_sql, null); //执行查询操作,结果存放在dt中 } public void TissuesKeyRefresh() { dgvKeyList.AutoGenerateColumns = false; dgvKeyList.AllowUserToAddRows = false; this.lstTissuesList.Items.Clear(); if (m_tissuesList.Rows.Count > 0) { for (int i = 0; i < m_tissuesList.Rows.Count; ++i) { lstTissuesList.Items.Add(m_tissuesList.Rows[i]["tissue_name"].ToString()); } if (m_selectedIndex > m_tissuesList.Rows.Count - 1) { m_selectedIndex = m_tissuesList.Rows.Count - 1; } lstTissuesList.SelectedIndex = m_selectedIndex; } else { m_tissuesId = null; } } /// /// 定义键 /// /// /// private void btnHotKey_Click(object sender, EventArgs e) { if (m_tissuesId == null) { MessageBox.Show(PdnResources.GetString("Menu.ddorganizationalinformationfirst.Text")); return; } HotKeySetingDialog dg = new HotKeySetingDialog(this, m_tissuesId); dg.ShowDialog(); } /// /// 设置 /// /// /// private void btnSetting_Click(object sender, EventArgs e) { SettingDialog dg = new SettingDialog(this); dg.ShowDialog(); } /// /// 查看历史 /// /// /// private void btnShowHistory_Click(object sender, EventArgs e) { HistoryDialog dg = new HistoryDialog(m_tissuesId); dg.ShowDialog(); } /// /// 保存 /// /// /// private void btnSave_Click(object sender, EventArgs e) { if (m_rectList.Count <= 0) { MessageBox.Show(PdnResources.GetString("Menu.renorecordedchangesandnoneedt.Text")); return; } SavingDialog dg = new SavingDialog(m_tissuesId, m_hotKeyList); dg.ShowDialog(); // 重新初始化 init(); } /// /// 组织 添加 /// /// /// private void btnTissueAdd_Click(object sender, EventArgs e) { TissuesDialog dg = new TissuesDialog(this, true, null); dg.ShowDialog(); } /// /// 组织 修改 /// /// /// private void btnTissueEdit_Click(object sender, EventArgs e) { if (m_tissuesId == null) { MessageBox.Show(PdnResources.GetString("Menu.ddorganizationalinformationfirst.Text")); return; } TissuesDialog dg = new TissuesDialog(this, false, m_tissuesId); dg.ShowDialog(); } /// /// 组织 删除 /// /// /// private void btnTissueDelete_Click(object sender, EventArgs e) { this.SavingYesOrNo(); if (btnAssay.Text == PdnResources.GetString("Menu.stop.text")) { MessageBox.Show("正在测定,不可删除!"); return; } if (m_tissuesId == null) { MessageBox.Show(PdnResources.GetString("Menu.heorganizationinformationtodelete.Text")); return; } DialogResult result = MessageBox.Show(PdnResources.GetString("Menu.surewanttodeleteheselect.Text") + "?", PdnResources.GetString("Menu.Tips.text"), MessageBoxButtons.OKCancel); if (result == DialogResult.OK) { // 删除组织信息 string delete_sql = "delete from mic_tissues where id = '" + m_tissuesId + "'"; m_sqlHelper.ExecuteNonQuery(delete_sql, null); //执行删除操作 // 删除定义键 delete_sql = "delete from mic_tissues_key where tissue_id = '" + m_tissuesId + "'"; m_sqlHelper.ExecuteNonQuery(delete_sql, null); //执行删除操作 this.TissuesListLoad(); //MessageBox.Show(PdnResources.GetString("Menu.successfullydeleted.text")); } } private void btnPreView_Click(object sender, EventArgs e) { Form form = Application.OpenForms["CameraPreviewDialog"];//尝试获取已经弹出的窗口对象 FloatingFormMethod.ShowFloatForm(form, form == null ? new CameraPreviewDialog(m_appWorkspace)/*没有弹出的窗口对象则创建*/ : null, m_appWorkspace); } private void lstTissuesList_SelectedIndexChanged(object sender, EventArgs e) { this.SavingYesOrNo(); m_selectedIndex = this.lstTissuesList.SelectedIndex; m_tissuesId = m_tissuesList.Rows[m_selectedIndex]["id"].ToString(); UpdateCenterCatalog(); } private bool SavingYesOrNo() { bool save = false; if (m_rectList.Count > 0) { DialogResult result = MessageBox.Show(PdnResources.GetString("Menu.thertheaccumulatorhaarecordsave.Text") + "?", PdnResources.GetString("Menu.Tips.text"), MessageBoxButtons.OKCancel); if (result == DialogResult.OK) { //打开保存窗口 SavingDialog savingDialog = new SavingDialog(m_tissuesId, m_hotKeyList); savingDialog.ShowDialog(); save = true; } // 重新初始化数据 init(); } return save; } /// /// 更新中间key设置 /// private void UpdateCenterCatalog() { // 组织列表 string select_sql = "select * from mic_tissues_key where delete_flag = 0 and tissue_id = '" + m_tissuesId + "'"; //查询的SQL语句 m_hotKeyList = m_sqlHelper.ExecuteDataTable(select_sql, null); //执行查询操作,结果存放在dt中 if (m_hotKeyList != null) { m_hotKeyList.Columns.Add("count"); m_hotKeyList.Columns.Add("ratio"); } this.DrawDgvKeyList(); this.DawPieChart(); } private void DrawDgvKeyList() { this.dgvKeyList.Rows.Clear(); if (m_hotKeyList == null) { return; } if (m_hotKeyList.Rows.Count > 0) { dgvKeyList.Rows.Add(m_hotKeyList.Rows.Count); for (int i = 0; i < m_hotKeyList.Rows.Count; ++i) { Color bgColor = ColorTranslator.FromHtml(m_hotKeyList.Rows[i]["color"].ToString()); dgvKeyList.Rows[i].Cells["hotKey"].Value = m_hotKeyList.Rows[i]["hot_key"].ToString(); dgvKeyList.Rows[i].Cells["hotKey"].Style.BackColor = bgColor; dgvKeyList.Rows[i].Cells["hotKey"].Style.ForeColor = Color.White; dgvKeyList.Rows[i].Cells["hotKey"].Style.SelectionBackColor = bgColor; dgvKeyList.Rows[i].Cells["hotKey"].Style.SelectionForeColor = Color.White; dgvKeyList.Rows[i].Cells["name"].Value = m_hotKeyList.Rows[i]["name"].ToString(); string count = m_hotKeyList.Rows[i]["count"].ToString(); if (string.IsNullOrEmpty(count)) { count = "0"; } m_hotKeyList.Rows[i]["count"] = count; dgvKeyList.Rows[i].Cells["count"].Value = count; string ratio = m_hotKeyList.Rows[i]["ratio"].ToString(); if (string.IsNullOrEmpty(ratio)) { ratio = "0"; } m_hotKeyList.Rows[i]["ratio"] = ratio; dgvKeyList.Rows[i].Cells["ratio"].Value = ratio; } } } private void dgvKeyList_CellClick(object sender, DataGridViewCellEventArgs e) { if (!m_isAssay) { return; } if (m_isFinish) { MessageBox.Show(PdnResources.GetString("Menu.measurementshaveallbeencom.Text")); return; } // 点击图标 if (dgvKeyList.Columns[e.ColumnIndex].Name == "hotKey" && e.RowIndex >= 0) { int value = int.Parse(dgvKeyList.Rows[e.RowIndex].Cells["count"].Value.ToString()) + 1; m_hotKeyList.Rows[e.RowIndex]["count"] = value; dgvKeyList.Rows[e.RowIndex].Cells["count"].Value = value; if (m_hotKeyList.Rows[e.RowIndex]["is_count"].ToString().Equals("1")) { m_total += 1; CalcRatio(); } this.PrintToControl(m_hotKeyList.Rows[e.RowIndex]); this.DawPieChart(); } } private void CalcRatio() { for (int i = 0; i < m_hotKeyList.Rows.Count; ++i) { if (m_hotKeyList.Rows[i]["is_count"].ToString().Equals("1")) { int count = int.Parse(m_hotKeyList.Rows[i]["count"].ToString()); decimal ratio = 0; if (m_total > 0) { string t = (count * 1.0 / m_total).ToString(); ratio = decimal.Round(decimal.Parse(t) * 100, 2); } string ratioStr = ratio + "%"; m_hotKeyList.Rows[i]["ratio"] = ratioStr; dgvKeyList.Rows[i].Cells["ratio"].Value = ratioStr; } } } private void ResetCount(string keyString) { for (int i = 0; i < m_hotKeyList.Rows.Count; ++i) { if (keyString.Equals(m_hotKeyList.Rows[i]["hot_key"].ToString())) { int count = int.Parse(m_hotKeyList.Rows[i]["count"].ToString()) - 1; m_hotKeyList.Rows[i]["count"] = count; dgvKeyList.Rows[i].Cells["count"].Value = count; if (m_hotKeyList.Rows[i]["is_count"].ToString().Equals("1")) { m_total -= 1; } break; } } CalcRatio(); } private void PrintToControl(DataRow data) { double x = 0, y = 0; if (PdnResources.GetString("Menu.Weightmeasurement.Text").Equals(data["direction"].ToString())) { // 全部重测回到开始位置了 if (m_rectList.Count == 0) { return; } if (m_assayRectY % 2 == 0) // 向右走 { if (m_assayRectX == 0) { m_assayRectY -= 1; y = m_rangeY; } else { m_assayRectX -= 1; x = -m_rangeX; } } else // 向左走 { if (m_assayRectX == m_pointX - 1) { m_assayRectY -= 1; y = m_rangeY; } else { m_assayRectX += 1; x = m_rangeX; } } m_Stage.Move(x, y); Dictionary lastRect = m_rectList[m_rectList.Count - 1]; ResetCount(lastRect["key"].ToString()); m_rectList.RemoveAt(m_rectList.Count - 1); Dictionary rect1 = new Dictionary { { "x", m_assayRectX }, { "y", m_assayRectY }, { "color", ColorTranslator.FromHtml(m_lensColor) }, { "key", data["hot_key"].ToString() } }; m_assayControl.DrawRectAssay(rect1); return; } Dictionary rect = new Dictionary { { "x", m_assayRectX }, { "y", m_assayRectY }, { "color", ColorTranslator.FromHtml(data["color"].ToString()) }, { "key", data["hot_key"].ToString() } }; m_rectList.Add(rect); m_assayControl.DrawRectAssay(rect); if (m_rectList.Count == m_pointX * m_pointY) { m_isFinish = true; UpdateAssayState(); MessageBox.Show(PdnResources.GetString("Menu.measurementshaveallbeencom.Text")); return; } x = 0; y = 0; if (m_assayRectY % 2 == 0) // 向右走 { if (m_assayRectX + 1 >= m_pointX) { m_assayRectY += 1; y = -m_rangeY; } else { m_assayRectX += 1; x = m_rangeX; } } else { if (m_assayRectX == 0) { m_assayRectY += 1; y = -m_rangeY; } else { m_assayRectX -= 1; x = -m_rangeX; } } m_Stage.Move(x, y); } private void DawPieChart() { lblSummation.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.total.text") + ":" + m_total.ToString(); if (m_total <= 0) { lblNull.Visible = true; chart1.Visible = false; return; } lblNull.Visible = false; chart1.Visible = true; // 饼图 List xData = new List(); List yData = new List(); DataRow[] dr = m_hotKeyList.Select("is_count = '1'"); for (int i = 0; i < dr.Length; ++i) { string name = dr[i]["name"].ToString(); decimal count = (decimal.Parse(dr[i]["count"].ToString())); string ratio = dr[i]["ratio"].ToString(); xData.Add(name + "(" + ratio + ")"); yData.Add(count); } chart1.Series[0]["PieLabelStyle"] = "Disabled";//将文字移到外侧Outside Inside chart1.Series[0].Points.DataBindXY(xData, yData); for (int i = 0; i < dr.Length; ++i) { Color color = ColorTranslator.FromHtml(dr[i]["color"].ToString()); chart1.Series[0].Points[i].Color = color; } } private void UpdateAssayState() { if (m_isAssay) { btnHotKey.Enabled = true; btnSetting.Enabled = true; m_isAssay = false; btnAssay.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.ensure.text"); } else { // 开始测定前检查前一次测定是否已保存 bool save = this.SavingYesOrNo(); if (save) { btnHotKey.Enabled = true; btnSetting.Enabled = true; m_isAssay = false; btnAssay.Text = PdnResources.GetString("Menu.Generalanalysis.Integrator.ensure.text"); } else { btnHotKey.Enabled = false; btnSetting.Enabled = false; m_isAssay = true; btnAssay.Text = PdnResources.GetString("Menu.stop.text"); } } } private void btnAssay_Click(object sender, EventArgs e) { if (m_tissuesId == null) { MessageBox.Show(PdnResources.GetString("Menu.ddorganizationalinformationfirst.Text")); return; } UpdateAssayState(); } private void panel2_SizeChanged(object sender, EventArgs e) { if (this.WindowState != FormWindowState.Minimized) { AssayUIRefresh(); } } private void AssayUIRefresh() { m_assayControl = new AssayUserControl(panel2.Width, panel2.Height, m_pointX, m_pointY, m_rangeX, m_rangeY, m_rectList, m_rangeRatio); m_assayControl.BgColor = ColorTranslator.FromHtml(m_bgColor); m_assayControl.LensBgColor = ColorTranslator.FromHtml(m_lensBgColor); m_assayControl.LensColor = ColorTranslator.FromHtml(m_lensColor); m_assayControl.GridsColor = ColorTranslator.FromHtml(m_gridsColor); //assay.LensColor = ColorTranslator.FromHtml(m_lensColor); m_assayControl.initialize(); this.panel2.Controls.Clear(); this.panel2.Controls.Add(m_assayControl); } private void GeneralCountometerDialog_KeyDown(object sender, KeyEventArgs e) { if (m_isAssay) { if (m_isFinish) { MessageBox.Show(PdnResources.GetString("Menu.measurementshaveallbeencom.Text")); return; } e.Handled = true; string keyString = e.KeyCode.ToString(); if (keyString.Equals("ControlKey")) { keyString = "Control"; } if (keyString.Equals("Menu")) { keyString = "Alt"; } if (!keyString.Equals("")) { for (int i = 0; i < m_hotKeyList.Rows.Count; ++i) { if (keyString.Equals(m_hotKeyList.Rows[i]["hot_key"].ToString())) { int value = int.Parse(dgvKeyList.Rows[i].Cells["count"].Value.ToString()) + 1; m_hotKeyList.Rows[i]["count"] = value; dgvKeyList.Rows[i].Cells["count"].Value = value; if (m_hotKeyList.Rows[i]["is_count"].ToString().Equals("1")) { m_total += 1; CalcRatio(); } PrintToControl(m_hotKeyList.Rows[i]); this.DawPieChart(); break; } } } } } private void GeneralCountometerDialog_FormClosing(object sender, FormClosingEventArgs e) { this.SavingYesOrNo(); // 检查测定是否已保存 m_sqlHelper.DisConnect(); m_Stage.FreeStage(); } private void GeneralCountometerDialog_Load(object sender, EventArgs e) { InitStage(); } } }