using JinYuan.Models; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace LargeSquareOne { public partial class trw : UserControl { public trw() { InitializeComponent(); IntValue(); } #region 减少闪烁 protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } #endregion private int subgroupSize =5; [Browsable(true)] [Category("自定义属性")] [Description("设置或获取子组大小值")] public int SubgroupSize { get { return subgroupSize; } set { subgroupSize = value; listView1.Items[0].SubItems[3].Text = value.ToString(); this.Invalidate(); } } private double _uSLs = 0; [Browsable(true)] [Category("自定义属性")] [Description("设置或获取上规格值")] public double USLs { get { return _uSLs; } set { _uSLs = value; listView1.Items[2].SubItems[1].Text = value.ToString(); this.Invalidate(); } } private double _lSLs = 0; [Browsable(true)] [Category("自定义属性")] [Description("设置或获取下规格值")] public double LSLs { get { return _lSLs; } set { _lSLs = value; listView1.Items[2].SubItems[5].Text = value.ToString(); this.Invalidate(); } } private double _cpkPpkAcceptanceValue = 0; [Browsable(true)] [Category("自定义属性")] [Description("设置或获取目标值")] public double CpkPpkAcceptanceValue { get { return _cpkPpkAcceptanceValue; } set { _cpkPpkAcceptanceValue = value; listView1.Items[2].SubItems[3].Text = value.ToString(); this.Invalidate(); } } private CPKModel _cPKData=new CPKModel(); [Browsable(true)] [Category("自定义属性")] [Description("获取目标值")] public CPKModel CPKData { get { return _cPKData; } set { if (value!=null) { _cPKData = value; //总样本数 listView1.Items[0].SubItems[1].Text = _cPKData.TotalNumber.ToString(); //平均值 listView1.Items[1].SubItems[1].Text = _cPKData.MeanVlaue.ToString(); //最大值 listView1.Items[1].SubItems[3].Text = _cPKData.MaxValue.ToString(); //最小值 listView1.Items[1].SubItems[5].Text = _cPKData.MinValue.ToString(); // 正的3倍标准差线 listView1.Items[3].SubItems[1].Text = _cPKData.Pos3Sigma.ToString(); // 负的3倍标准差线 listView1.Items[3].SubItems[3].Text = _cPKData.Neg3Sigma.ToString(); // 组内标准差值 listView2.Items[0].SubItems[1].Text= _cPKData.GroupSTDEV.ToString(); // 整体标准差值 listView2.Items[0].SubItems[2].Text = _cPKData.WholeSTDEV.ToString(); // 组内CPK值 listView2.Items[1].SubItems[1].Text = _cPKData.GroupCPK.ToString(); // 整体CPK值 listView2.Items[1].SubItems[2].Text = _cPKData.WholeCPK.ToString(); // 组内CP值 listView2.Items[2].SubItems[1].Text = _cPKData.GroupCP.ToString(); // 整体CP值 listView2.Items[2].SubItems[2].Text = _cPKData.WholeCP.ToString(); // 组内CPL值 listView2.Items[3].SubItems[1].Text = _cPKData.GroupCPL.ToString(); // 整体CPL值 listView2.Items[3].SubItems[2].Text = _cPKData.WholeCPL.ToString(); // 组内CPU值 listView2.Items[4].SubItems[1].Text = _cPKData.GroupCPU.ToString(); // 整体CPU值 listView2.Items[4].SubItems[2].Text = _cPKData.WholeCPU.ToString(); // 组内PPMUSL值 listView2.Items[6].SubItems[1].Text = _cPKData.GroupPPM_USL.ToString(); // 整体PPM>USL值 listView2.Items[6].SubItems[2].Text = _cPKData.WholePPM_USL.ToString(); // 组内PPM Total值 listView2.Items[7].SubItems[1].Text = _cPKData.GroupPPM_Total.ToString(); // 整体PPMN Total值 listView2.Items[7].SubItems[2].Text = _cPKData.WholePPM_Total.ToString(); lbl_Ca.Text= _cPKData.CA.ToString(); this.Invalidate(); } } } #region 初始化 private void IntValue() { //listView2.OwnerDraw = true; //listView2.DrawColumnHeader += ListView2_DrawColumnHeader; listView1.Columns.Clear(); listView2.Columns.Clear(); // 假设ListView控件的名称为listView1 // 添加列头 listView1.Columns.Add("项目1",80); listView1.Columns.Add("数值1",90); listView1.Columns.Add("项目2",80); listView1.Columns.Add("数值2", 90); listView1.Columns.Add("项目3", 80); listView1.Columns.Add("数值3", 95); // 创建一个ListViewItem对象,并将数据添加到指定单元格 0 ListViewItem item1_1 = new ListViewItem("总样本数"); item1_1.SubItems.Add("0"); item1_1.SubItems.Add("子组大小"); item1_1.SubItems.Add("0"); item1_1.SubItems.Add("图标类型"); item1_1.SubItems.Add("XR"); listView1.Items.Add(item1_1); // 添加完整的ListViewItem对象到ListView控件中的指定行索引 // 如果需要添加多行数据,可以类似地重复上述步骤 ListViewItem item1_2 = new ListViewItem("平均值"); //1 item1_2.SubItems.Add("0"); item1_2.SubItems.Add("最大值"); item1_2.SubItems.Add("0"); item1_2.SubItems.Add("最小值"); item1_2.SubItems.Add("0"); listView1.Items.Add(item1_2); ListViewItem item1_3 = new ListViewItem("上规格"); //2 item1_3.SubItems.Add("0"); item1_3.SubItems.Add("目标值"); item1_3.SubItems.Add("0"); item1_3.SubItems.Add("下规格"); item1_3.SubItems.Add("0"); listView1.Items.Add(item1_3); ListViewItem item1_4 = new ListViewItem("+3Sigma"); //3 item1_4.SubItems.Add("0"); item1_4.SubItems.Add("-3Sigma"); item1_4.SubItems.Add("0"); listView1.Items.Add(item1_4); // 假设ListView控件的名称为listView1 // 添加列头 listView2.Columns.Add("", 150); listView2.Columns.Add("组内", 120); listView2.Columns.Add("整体", 120); listView2.Columns.Add("实测", 128); // 创建一个ListViewItem对象,并将数据添加到指定单元格 ListViewItem item2_1 = new ListViewItem("STDEV"); //0 item2_1.SubItems.Add("0"); item2_1.SubItems.Add("0"); item2_1.SubItems.Add(""); listView2.Items.Add(item2_1); // 添加完整的ListViewItem对象到ListView控件中的指定行索引 ListViewItem item2_2 = new ListViewItem("CPK"); //1 item2_2.SubItems.Add("0"); item2_2.SubItems.Add("0"); item2_2.SubItems.Add(""); listView2.Items.Add(item2_2); ListViewItem item2_3 = new ListViewItem("CP");//2 item2_3.SubItems.Add("0"); item2_3.SubItems.Add("0"); item2_3.SubItems.Add(""); listView2.Items.Add(item2_3); ListViewItem item2_4 = new ListViewItem("CPL");//3 item2_4.SubItems.Add("0"); item2_4.SubItems.Add("0"); item2_4.SubItems.Add(""); listView2.Items.Add(item2_4); ListViewItem item2_5 = new ListViewItem("CPU");//4 item2_5.SubItems.Add("0"); item2_5.SubItems.Add("0"); item2_5.SubItems.Add(""); listView2.Items.Add(item2_5); ListViewItem item2_6 = new ListViewItem("PPMUSL");//6 item2_7.SubItems.Add("0"); item2_7.SubItems.Add("0"); item2_7.SubItems.Add("0"); listView2.Items.Add(item2_7); ListViewItem item2_8 = new ListViewItem("PPM Total");//7 item2_8.SubItems.Add("0"); item2_8.SubItems.Add("0"); item2_8.SubItems.Add("0"); listView2.Items.Add(item2_8); lbl_Ca.Text = "0"; } #endregion public void ListView2_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) { e.DrawBackground(); // 设置自定义的列标题栏背景颜色 e.Graphics.FillRectangle(Brushes.AliceBlue, e.Bounds); // 绘制列标题栏的文本 e.DrawText(); } } }