时间倒计时工具

背景:因公司小组人员结构调整优化及各线剩余时间可视化。

 

 

此工具分为两部份:

1:显示工具【Main】

2:数据添加工具【DataAdd】

 

//====================================Main================================

//===============引用========

using DevExpress.Utils;
using DevExpress.XtraEditors.Drawing;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using System;
using System.Data;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;

//==================================以下为正文内容=============

 public partial class Main : Form
    {
        DateTimePicker dtp = new DateTimePicker();  //实例化一个DateTimePicker控件

        public Main()
        {
            InitializeComponent();

            //dataGridView1.Controls.Add(dtp);  //将时间控件加入DataGridView
            gridView3.Connect(dtp);
            //dataGridView1.Controls.Add(prog); 
            dtp.Visible = false;  //先不显示
            dtp.Format = DateTimePickerFormat.Time;  //设置日期格式,2017-11-11
            dtp.TextChanged += new EventHandler(dtp_TextChange); //为时间控件加入事件dtp_TextChange

        }
        private void dtp_TextChange(object sender, EventArgs e)
        {
            //gridView3.Connect.CurrentCell.Value = dtp.Value.ToString();  //时间控件选择时间时,将时间内容赋给所在的单元格
        }
        private void Form1_Load(object sender, EventArgs e)
        {

            DataTable dt = new DataTable();
            dt.Columns.Add("线别", typeof(string));
            dt.Columns.Add("开始时间", typeof(DateTime));
            dt.Columns.Add("结束时间", typeof(DateTime));
            dt.Columns.Add("剩余进度", typeof(string));
            dt.Columns.Add("剩余时间", typeof(string));
            dt.Columns.Add("对位人员", typeof(string));
            dt.Columns.Add("金样编号", typeof(string));
            dt.Columns.Add("机型", typeof(string));
            dt.Columns.Add("对位类型", typeof(string));

            //设置DEV

            gridView3.OptionsCustomization.AllowFilter = false;//禁用 GridControl 中列头的过滤器 过滤器如下图所示:
            gridView3.OptionsView.ShowGroupPanel = false;//隐藏 GridControl 的 GroupPanel 表头
            gridView3.OptionsMenu.EnableColumnMenu = false;//禁用 GridControl 中单击列弹出右键菜单


            DataSet ds = new DataSet();
            ////读取XML
            DataTable data = new DataTable();


            if (!File.Exists("info.xml"))

           {
               DataAdd f = new DataAdd();
               f.ShowDialog();

           }
           
            else
            {
                ////将XML文件加载进来
                XmlDocument doc2 = new XmlDocument();
                doc2.Load("info.xml");
                //获取根节点
                XmlElement root2 = doc2.DocumentElement;
                //获取子节点
                XmlNodeList pnodes = root2.GetElementsByTagName("attribute");
                //使用foreach循环读出集合

                foreach (XmlNode node in pnodes)
                {
                    string name = ((XmlElement)node).GetAttribute("Lines");
                    string x = ((XmlElement)node).GetElementsByTagName("开始时间")[0].InnerText;
                    string y = ((XmlElement)node).GetElementsByTagName("结束时间")[0].InnerText;
                    string z = ((XmlElement)node).GetElementsByTagName("对位人员")[0].InnerText;
                    string u = ((XmlElement)node).GetElementsByTagName("金样编号")[0].InnerText;
                    string q = ((XmlElement)node).GetElementsByTagName("机型")[0].InnerText;
                    string w = ((XmlElement)node).GetElementsByTagName("对位类型")[0].InnerText;

                    dt.Rows.Add(new object[] { name, x, y, "12", "34", z, u, q, w });

                }
                gridControl3.DataSource = dt;
                gridView3.Columns[1].DisplayFormat.FormatString = "t";
                gridView3.Columns[2].DisplayFormat.FormatString = "g";
                gridView3.Columns[0].OptionsColumn.AllowEdit = false;//设置列不可以编辑
                gridView3.Columns[1].OptionsColumn.AllowEdit = false;//设置列不可以编辑
                gridView3.Columns[2].OptionsColumn.AllowEdit = false;//设置列不可以编辑
                gridView3.Columns[3].OptionsColumn.AllowEdit = false;//设置列不可以编辑
                gridView3.Columns[4].OptionsColumn.AllowEdit = false;//设置列不可以编辑
              
                gridView3.Columns[5].OptionsColumn.AllowEdit = false;//设置列不可以编辑
                gridView3.Columns[6].OptionsColumn.AllowEdit = false;//设置列不可以编辑
                gridView3.Columns[7].OptionsColumn.AllowEdit = false;//设置列不可以编辑
                gridView3.Columns[8].OptionsColumn.AllowEdit = false;//设置列不可以编辑
            }
           

        }


        private void DrProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e,int i)
        {

            DateTime tarttimer = Convert.ToDateTime(gridView3.GetRowCellValue(i, gridView3.Columns["开始时间"]).ToString());
            DateTime stoptimer = tarttimer.AddHours(73);
            DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss")));
            TimeSpan diff1 = stoptimer.Subtract(date1);
            double bfb = diff1.TotalMinutes;//已递增数
            double yy = (bfb / 43.8);
            //this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, 5) + "%");


           // decimal percent = yy;// Convert.ToDecimal(bfb2 / bfb);
           
           // int iIndex = 0;
            int width = (int)(Math.Abs(yy) * e.Bounds.Width / 100);
            //if (yy < 50)
            //{
            //    width = (int)( Math.Abs(1) * e.Bounds.Width / 100); ;// iIndex = 1;
            //}
            ////if (iIndex == 1)
            ////{
            ////    width =  (int)(100 * Math.Abs(1) * e.Bounds.Width / 100);
            ////}
            //else
            //{
                //width =  (int)(Math.Abs(yy) * e.Bounds.Width / 100);
            //}

            
            Brush b = Brushes.LawnGreen;

            if (0<yy && yy < 30)
            {
                Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height);
                b = Brushes.Yellow;
                e.Graphics.FillRectangle(b, rect);
            }
            if (yy < 0)
            {
                Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height);
                b = Brushes.Red;
                e.Graphics.FillRectangle(b, rect);
            }
            if (yy > 30)
            {
                Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height);
                b = Brushes.Green;
                e.Graphics.FillRectangle(b, rect);
            }

            


        }

        private void DrawEditor(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {

            GridCellInfo cell = e.Cell as GridCellInfo;
            Point offset = cell.CellValueRect.Location;
            BaseEditPainter pb = cell.ViewInfo.Painter as BaseEditPainter;
            AppearanceObject style = cell.ViewInfo.PaintAppearance;
            if (!offset.IsEmpty)
                cell.ViewInfo.Offset(offset.X, offset.Y);
            try
            {
                pb.Draw(new ControlGraphicsInfoArgs(cell.ViewInfo, e.Cache, cell.Bounds));
            }
            finally
            {
                if (!offset.IsEmpty)
                {
                    cell.ViewInfo.Offset(-offset.X, -offset.Y);
                }
            }


        }


        private void gridView3_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            //if (e.RowHandle == gridView1.FocusedRowHandle)
            //{
            //    e.Appearance.BackColor = Color.CadetBlue;
            //}
            if (e.Column.FieldName == "剩余进度")//为ZBJD这列设置进度条
            {
                DrProgressBar(e,e .RowHandle);
                e.Handled = true;
                DrawEditor(e);
            }

            //   try
            //{
            //    if (this.dataGridView1.CurrentCell.ColumnIndex.ToString() == "4" || this.dataGridView1.CurrentCell.ColumnIndex.ToString() == "6" || this.dataGridView1.CurrentCell.ColumnIndex.ToString() == "5")//在此指定和哪一列绑定
            //    {
            //        System.Drawing.Rectangle rect = gridView3 .InvalidateRect ((dataGridView1.CurrentCell.ColumnIndex, dataGridView1.CurrentCell.RowIndex, false);
            //        dmg.Left = rect.Left;
            //        dmg.Top = rect.Top;
            //        dmg.Width = rect.Width;
            //        dmg.Height = rect.Height;
            //        dmg.Visible = true;
            //        i = this.dataGridView1.CurrentRow.Index;
            //         j = this.dataGridView1.CurrentCell.ColumnIndex;
            //         dataGridView1.CurrentCell.Value = dmg.Value;
            //    }
            //    else
            //    {
            //        dmg.Visible = false;
            //    }

            //}
            //catch
            //{
            //}


        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {


            //DialogResult dr = MessageBox.Show("确认关闭吗?", "提示", MessageBoxButtons.OKCancel);
            //if (dr == DialogResult.OK)
            //{
            //    //确认参数
            //   // SaveXML();
            //    //MessageBox.Show("数据保存完成");
            //    e.Cancel = false;
            //}
            //else if (dr == DialogResult.Cancel)
            //{
            //    e.Cancel = true;
            //}

        }


        private void SaveXML()
        {
            //处理XML
            //创建一个XML文档对象
            XmlDocument doc = new XmlDocument();
            //声明XML头部信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            //添加进doc对象子节点
            doc.AppendChild(dec);
            //创建根节点
            XmlElement root = doc.CreateElement("参数");
            doc.AppendChild(root);

            //开始循环保存数据

            // MessageBox.Show(gridView3.RowCount.ToString());
            for (int i = 0; i < gridView3.RowCount; i++)
            {

                string linename = gridView3.GetRowCellValue(i, gridView3.Columns["线别"]).ToString();//量产1线
                string starttimer = gridView3.GetRowCellValue(i, gridView3.Columns["开始时间"]).ToString();//开始时间
                string stoptimer = gridView3.GetRowCellValue(i, gridView3.Columns["结束时间"]).ToString();//结束时间
                string checkyy = gridView3.GetRowCellValue(i, gridView3.Columns["对位人员"]).ToString();//对位人员
                string CMW = gridView3.GetRowCellValue(i, gridView3.Columns["金样编号"]).ToString();//金样编号

                //再创建根节点下的子节点
                XmlElement student = doc.CreateElement("attribute");
                //设置子节点属性
                student.SetAttribute("Lines", linename);

                //子节点下再创建标记
                XmlElement one_X = doc.CreateElement("开始时间");
                //<X>的内容
                XmlText xmlText1 = doc.CreateTextNode(starttimer);//存储x的值
                //将内容添加到<X>标记
                one_X.AppendChild(xmlText1);
                //再将<X>标记添加到<上下料>标记的子节点下
                student.AppendChild(one_X);

                XmlElement one_Y = doc.CreateElement("结束时间");
                XmlText xmlText2 = doc.CreateTextNode(stoptimer);//存储y的值
                one_Y.AppendChild(xmlText2);
                student.AppendChild(one_Y);

                XmlElement one_Z = doc.CreateElement("对位人员");
                XmlText xmlText3 = doc.CreateTextNode(checkyy);//存储z的值
                one_Z.AppendChild(xmlText3);
                student.AppendChild(one_Z);

                XmlElement one_U = doc.CreateElement("金样编号");
                XmlText xmlTextU = doc.CreateTextNode(CMW);//存储z的值
                one_U.AppendChild(xmlTextU);
                student.AppendChild(one_U);

                //最后把标记添加到根节点的子节点下

                root.AppendChild(student);
            }

            //doc文档对象保存写入
            doc.Save("info.xml");

        }

        private void 新增新行ToolStripMenuItem_Click(object sender, EventArgs e)
        {

            DataAdd p = new DataAdd();
            p.ShowDialog();
            


        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gridView3.RowCount; i++)
                {
                    DateTime tarttimer = Convert.ToDateTime(gridView3.GetRowCellValue(i, gridView3.Columns["开始时间"]).ToString());
                    DateTime stoptimer = tarttimer.AddHours(73);
                    System.DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss")));
                    System.TimeSpan diff1 = stoptimer.Subtract(date1);
                    System.TimeSpan diff2 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"))).Subtract(Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"))));
                    if (diff1 < diff2)
                    {
                        this.gridView3.SetRowCellValue(i, gridView3.Columns[4], "00:00:00");
                    }
                    else
                    {
                        this.gridView3.SetRowCellValue(i, gridView3.Columns[4], diff1.ToString());

                    }

                    double bfb = diff1.TotalMinutes;//已递增数

                    double yy = (bfb / 43.8);

                    if (diff1 < diff2)
                    {
                        this.gridView3.SetRowCellValue(i, gridView3.Columns[3], "00.00%");
                    }
                    else
                    {
                        // this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, yy.ToString().Length) + "%");
                        if ((yy.ToString().Length > 5))
                        {
                            this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, 5) + "%");
                        }
                        if ((yy.ToString().Length < 5))
                        {
                            this.gridView3.SetRowCellValue(i, gridView3.Columns[3], yy.ToString().Substring(0, 4) + "%");
                        }

                    }

                    //DateTime tarttimer2 = Convert.ToDateTime(gridView3.GetRowCellValue(i, gridView3.Columns["剩余时间"]).ToString());
                    // DateTime stoptimer = tarttimer.AddHours(73);
                    //System.DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd hh:mm:ss")));
                    // System.TimeSpan diff1 = stoptimer.Subtract(date1);
                    //   System.TimeSpan diff1 = stoptimer.Subtract(date1);
                    // System.TimeSpan diff3 = date1.Subtract(tarttimer);
                    //  System.TimeSpan diff2 = stoptimer.Subtract(tarttimer2);//算出总分钟数
                    //  this.gridView3.SetRowCellValue(1, gridView3.Columns[4], diff3.ToString());


                }

            }
            catch 
            {
            
            }

        }


    }
 

//============工具界面

 

 

 

======================说明==============

在显示界面右键点击“修改数据"即可打开DataAdd

//========================DataAdd==============================

//========================引用==============================

using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using System.Xml;

 

//==========================以下正文============================

 

 public partial class DataAdd : Form
    {
        DevExpress.XtraEditors.DateEdit dtp = new DevExpress.XtraEditors.DateEdit();
        Rectangle _Rectangle, ectangle;


        XmlDocument doc = new XmlDocument();
        XmlElement root ;
        public DataAdd()
        {
            InitializeComponent();
            dataGridView1.Controls.Add(dtp);  //将时间控件加入DataGridView
            dtp.Visible = false;  //先不显示
            dtp.TextChanged += new EventHandler(dtp_TextChange); //为时间控件加入事件dtp_TextChange

        }

        private void dtp_TextChange(object sender, EventArgs e)
        {
            dataGridView1.CurrentCell.Value = dtp.Text;  //时间控件选择时间时,将时间内容赋给所在的单元格
        }

        private void DataAdd_Load(object sender, EventArgs e)
        {

            if (File.Exists("info.xml"))
            {
                ////将XML文件加载进来
                XmlDocument doc2 = new XmlDocument();
                doc2.Load("info.xml");
                //获取根节点
                XmlElement root2 = doc2.DocumentElement;
                //获取子节点
                XmlNodeList pnodes = root2.GetElementsByTagName("attribute");
                //使用foreach循环读出集合

                foreach (XmlNode node in pnodes)
                {
                    string name = ((XmlElement)node).GetAttribute("Lines");
                    string x = ((XmlElement)node).GetElementsByTagName("开始时间")[0].InnerText;
                    string y = ((XmlElement)node).GetElementsByTagName("结束时间")[0].InnerText;
                    string z = ((XmlElement)node).GetElementsByTagName("对位人员")[0].InnerText;
                    string u = ((XmlElement)node).GetElementsByTagName("金样编号")[0].InnerText;
                    string q = ((XmlElement)node).GetElementsByTagName("机型")[0].InnerText;
                    string w = ((XmlElement)node).GetElementsByTagName("对位类型")[0].InnerText;

                    int i = dataGridView1.Rows.Add();
                    dataGridView1.Rows[i].Cells[0].Value = name;
                    dataGridView1.Rows[i].Cells[1].Value = x;
                    dataGridView1.Rows[i].Cells[2].Value = y;
                    dataGridView1.Rows[i].Cells[3].Value = z;
                    dataGridView1.Rows[i].Cells[4].Value = u;
                    dataGridView1.Rows[i].Cells[5].Value = q;
                    dataGridView1.Rows[i].Cells[6].Value = w;
                }

            }

           // gridControl3.DataSource = dt;

            //dataGridView1.DataSource = dt;


            dtp.Properties.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";
            dtp.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.EditFormat.FormatString = "yyyy-MM-dd HH:mm:ss";
            dtp.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.Mask.EditMask = "yyyy-MM-dd HH:mm:ss";
            dtp.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True;
            dtp.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True;
            dtp.Properties.VistaTimeProperties.DisplayFormat.FormatString = "HH:mm:ss";
            dtp.Properties.VistaTimeProperties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.VistaTimeProperties.EditFormat.FormatString = "HH:mm:ss";
            dtp.Properties.VistaTimeProperties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            dtp.Properties.VistaTimeProperties.Mask.EditMask = "HH:mm:ss";


            //
            dataGridView1.Columns[0].Width = 100;
            dataGridView1.Columns[1].Width = 170;
            dataGridView1.Columns[2].Width = 170;
            dataGridView1.Columns[3].Width = 100;
            dataGridView1.Columns[4].Width = 100;

        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 1 || e.ColumnIndex == 2)
            {
                _Rectangle = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); //得到所在单元格位置和大小
                dtp.Size = new Size(_Rectangle.Width, _Rectangle.Height); //把单元格大小赋给时间控件
                dtp.Location = new Point(_Rectangle.X, _Rectangle.Y); //把单元格位置赋给时间控件
                dtp.Visible = true;  //显示控件
            }
            else
                dtp.Visible = false;


        }

        private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
        {
            dtp.Visible = false;
        }

        private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
        {
            dtp.Visible = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {

           
                int i = dataGridView1.Rows.Add();
                dataGridView1.Rows[i].Cells[0].Value = textBox3.Text;
                dataGridView1.Rows[i].Cells[1].Value = DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"));
                dataGridView1.Rows[i].Cells[2].Value = DateTime.Now.ToString(("yyyy-MM-dd HH:mm:ss"));
                dataGridView1.Rows[i].Cells[3].Value = ""; ;
                dataGridView1.Rows[i].Cells[4].Value = "";
                dataGridView1.Rows[i].Cells[5].Value = ""; ;
                dataGridView1.Rows[i].Cells[6].Value = "";
               


        }

        private void button2_Click(object sender, EventArgs e)
        {
            //DateTime time = Convert.ToDateTime(dataGridView1.Rows[i].Cells[1].Value);
            //DateTime date1 = Convert.ToDateTime(DateTime.Now.ToString(("yyyy-MM-dd hh:mm:ss")));
            //TimeSpan diff1 = date1.Subtract(time);
            //int d = (int)diff1.TotalMinutes;
            //if ((d > 0))
            //{

            //}

            //else
            //{

            //    MessageBox.Show("开始时间数不应该大于目前时间数", "注意", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            //}

            // //XmlDocument doc = new XmlDocument();
            //doc.Load("info.xml");
            ////获取根节点
            //XmlElement root2 = doc.DocumentElement;
            ////获取子节点
            //XmlNodeList pnodes = root2.GetElementsByTagName("attribute");
            //使用foreach循环读出集合

            //if (!File.Exists("info.xml"))
            //{
                //创建一个XML文档对象
                //XmlDocument doc = new XmlDocument();
                //声明XML头部信息
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
                //添加进doc对象子节点
                doc.AppendChild(dec);
                //创建根节点
                 root = doc.CreateElement("参数");
                doc.AppendChild(root);
            //}
            //else 
            //{
            //    //XmlDocument doc = new XmlDocument();
            //    doc.Load("info.xml");
            //    //获取根节点
            //     root = doc.DocumentElement;
            //    //获取子节点
            //    XmlNodeList pnodes = root.GetElementsByTagName("attribute");
            //    //使用foreach循环读出集合


            //}

            //开始循环保存数据

           // MessageBox.Show(dataGridView1.Rows.Count.ToString ());
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {

                string linename = dataGridView1.Rows[i].Cells[0].Value.ToString();//量产1线
                string starttimer = dataGridView1.Rows[i].Cells[1].Value.ToString();//开始时间
                string stoptimer = dataGridView1.Rows[i].Cells[2].Value.ToString();//结束时间
                string checkyy = dataGridView1.Rows[i].Cells[3].Value.ToString();//对位人员
                string CMW = dataGridView1.Rows[i].Cells[4].Value.ToString();//金样编号

                string checky = dataGridView1.Rows[i].Cells[5].Value.ToString();//对位人员
                string CMWs = dataGridView1.Rows[i].Cells[6].Value.ToString();//金样编号

                //MessageBox.Show(starttimer);
                //MessageBox.Show(stoptimer);


                //再创建根节点下的子节点
                XmlElement student = doc.CreateElement("attribute");
                //设置子节点属性
                student.SetAttribute("Lines", linename);

                //子节点下再创建标记
                XmlElement one_X = doc.CreateElement("开始时间");
                //<X>的内容
                XmlText xmlText1 = doc.CreateTextNode(starttimer);//存储x的值
                //将内容添加到<X>标记
                one_X.AppendChild(xmlText1);
                //再将<X>标记添加到<上下料>标记的子节点下
                student.AppendChild(one_X);

                XmlElement one_Y = doc.CreateElement("结束时间");
                XmlText xmlText2 = doc.CreateTextNode(stoptimer);//存储y的值
                one_Y.AppendChild(xmlText2);
                student.AppendChild(one_Y);

                XmlElement one_Z = doc.CreateElement("对位人员");
                XmlText xmlText3 = doc.CreateTextNode(checkyy);//存储z的值
                one_Z.AppendChild(xmlText3);
                student.AppendChild(one_Z);

                XmlElement one_U = doc.CreateElement("金样编号");
                XmlText xmlTextU = doc.CreateTextNode(CMW);//存储z的值
                one_U.AppendChild(xmlTextU);
                student.AppendChild(one_U);

                XmlElement one_Z2 = doc.CreateElement("机型");
                XmlText xmlText32 = doc.CreateTextNode(checky);//存储z的值
                one_Z2.AppendChild(xmlText32);
                student.AppendChild(one_Z2);

                XmlElement one_U3 = doc.CreateElement("对位类型");
                XmlText xmlTextU3 = doc.CreateTextNode(CMWs);//存储z的值
                one_U3.AppendChild(xmlTextU3);
                student.AppendChild(one_U3);

                //最后把标记添加到根节点的子节点下

                root.AppendChild(student);
            }

            //doc文档对象保存写入
            doc.Save("info.xml");


          //  SaveXML();
            
            MessageBox.Show("数据保存完成; 工具将会重新启动");
            Process.Start("对位时间倒计时工具.exe");
            Application.Exit();
           // this.Hide ();
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Main()); 
        }


        private void SaveXML()
        {
            //处理XML
            //创建一个XML文档对象
            XmlDocument doc = new XmlDocument();
            //声明XML头部信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            //添加进doc对象子节点
            doc.AppendChild(dec);
            //创建根节点
            XmlElement root = doc.CreateElement("参数");
            doc.AppendChild(root);

            //开始循环保存数据

            // MessageBox.Show(gridView3.RowCount.ToString());
            for (int i = 0; i < dataGridView1 .Rows .Count ; i++)
            {

                string linename = dataGridView1.Rows[i].Cells[0].Value.ToString () ;//量产1线
                string starttimer = dataGridView1.Rows[i].Cells[1].Value.ToString();//开始时间
                string stoptimer = dataGridView1.Rows[i].Cells[2].Value.ToString();//结束时间
                string checkyy = dataGridView1.Rows[i].Cells[3].Value.ToString();//对位人员
                string CMW = dataGridView1.Rows[i].Cells[4].Value.ToString();//金样编号

                //再创建根节点下的子节点
                XmlElement student = doc.CreateElement("attribute");
                //设置子节点属性
                student.SetAttribute("Lines", linename);

                //子节点下再创建标记
                XmlElement one_X = doc.CreateElement("开始时间");
                //<X>的内容
                XmlText xmlText1 = doc.CreateTextNode(starttimer);//存储x的值
                //将内容添加到<X>标记
                one_X.AppendChild(xmlText1);
                //再将<X>标记添加到<上下料>标记的子节点下
                student.AppendChild(one_X);

                XmlElement one_Y = doc.CreateElement("结束时间");
                XmlText xmlText2 = doc.CreateTextNode(stoptimer);//存储y的值
                one_Y.AppendChild(xmlText2);
                student.AppendChild(one_Y);

                XmlElement one_Z = doc.CreateElement("对位人员");
                XmlText xmlText3 = doc.CreateTextNode(checkyy);//存储z的值
                one_Z.AppendChild(xmlText3);
                student.AppendChild(one_Z);

                XmlElement one_U = doc.CreateElement("金样编号");
                XmlText xmlTextU = doc.CreateTextNode(CMW);//存储z的值
                one_U.AppendChild(xmlTextU);
                student.AppendChild(one_U);

                //最后把标记添加到根节点的子节点下

                root.AppendChild(student);
            }

            //doc文档对象保存写入
            doc.Save("info.xml");

        }

        private void 删除选中行ToolStripMenuItem_Click(object sender, EventArgs e)
        {

            dataGridView1.Rows.RemoveAt(dataGridView1.CurrentCell.RowIndex);
            //dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
           // this.dataGridView1.SelectedCells[0].Value.ToString();

        }
    }
 

//================================工具界面================

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章