⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmanualsmooth.cs

📁 用C#写的USB数据采集程序
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace MCA
{
    public partial class FrmManualSmooth : Form
    {
        #region "私有变量"
        internal FrmMain frmmain;
        internal DataTable paratable;
        #endregion

        #region "构造函数"
        /// <summary>
        /// 构造函数
        /// </summary>
        public FrmManualSmooth()
        {
            InitializeComponent();
            paratable = new DataTable("paras");
            paratable.Columns.Add("C(i-1)", typeof(int));
            paratable.Columns.Add("C(i)", typeof(int));
            paratable.Columns.Add("C(i+1)", typeof(int));
            DataRow row;
            row = paratable.NewRow();
            row["C(i-1)"] = 0;
            row["C(i)"] = 0;
            row["C(i+1)"] = 0;
            paratable.Rows.Add(row);
            gridPara.DataSource = paratable;
            ParaGrid_CurrentCellChanged(this, new EventArgs());
        }
        #endregion

        #region "完成参数输入"
        /// <summary>
        /// 完成参数输入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibtOK_MouseUp(object sender, MouseEventArgs e)
        {
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
        #endregion

        #region "初始化"
        /// <summary>
        /// 窗口载入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmManualSmooth_Load(object sender, EventArgs e)
        {
            this.Top = frmmain.Top + (frmmain.Height - this.Height) / 2;
            this.Left = frmmain.Left + (frmmain.Width - this.Width) / 2;
        }
        #endregion

        #region "取消"
        /// <summary>
        /// 取消参数输入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibtCancel_MouseUp(object sender, MouseEventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }
        #endregion

        #region "保存参数"
        /// <summary>
        /// 保存参数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibtSave_MouseUp(object sender, MouseEventArgs e)
        {
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                if (!saveFileDialog.FileName.ToLower().EndsWith(".ps"))
                {
                    saveFileDialog.FileName += ".ps";
                }
                try
                {
                    paratable.WriteXml(saveFileDialog.FileName,  XmlWriteMode.WriteSchema);
                    MessageBox.Show("参数保存成功。", "信息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                }
                catch (Exception)
                {
                    MessageBox.Show("参数保存失败。", "信息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    return;
                }
            }
        }
        #endregion

        #region "读入参数"
        /// <summary>
        /// 读入参数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibtOpen_MouseUp(object sender, MouseEventArgs e)
        {
            try
            {
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    paratable.Columns.Clear();
                    paratable.Rows.Clear();
                    paratable.ReadXml(openFileDialog.FileName);
                    paratable.AcceptChanges();
                    MessageBox.Show("参数读入成功。", "信息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("参数读入失败。", "信息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                paratable.Columns.Add("C(i-1)", typeof(int));
                paratable.Columns.Add("C(i)", typeof(int));
                paratable.Columns.Add("C(i+1)", typeof(int));
                DataRow row = paratable.NewRow(); ;
                row["C(i-1)"] = 0;
                row["C(i)"] = 0;
                row["C(i+1)"] = 0;
                paratable.Rows.Add(row);
                paratable.AcceptChanges();
                return;
            }
            finally
            {
                DataGridCell cell = gridPara.CurrentCell;
                nUpDownvalue.Value = (int)gridPara[cell.RowNumber, cell.ColumnNumber];
            }
        }
        #endregion

        #region "获得参数值"
        /// <summary>
        /// 获得参数值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ParaGrid_CurrentCellChanged(object sender, EventArgs e)
        {
            DataGridCell cell = gridPara.CurrentCell;
            nUpDownvalue.Value = (int)gridPara[cell.RowNumber, cell.ColumnNumber];
        }
        #endregion

        #region "设置参数值"
        /// <summary>
        /// 设置参数值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void nUpDownvalue_ValueChanged(object sender, EventArgs e)
        {
            DataGridCell cell = gridPara.CurrentCell;
            gridPara[cell.RowNumber, cell.ColumnNumber] = (int)nUpDownvalue.Value;
        }
        #endregion

        #region "增加参数值"
        /// <summary>
        /// 增加参数值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibtAdd_MouseUp(object sender, MouseEventArgs e)
        {
            int n = paratable.Columns.Count;

            //保留原有数据信息
            DataColumn[] column = new DataColumn[n + 2];
            object[] row = paratable.Rows[0].ItemArray;
            //生成新数据
            column[(n - 1) / 2 + 1] = new DataColumn("C(i)", typeof(int));
            for (int i = 0; i < (n - 1) / 2 + 1; i++)
            {
                column[(n - 1) / 2 + 1 - (i + 1)] = new DataColumn("C(i-" + Convert.ToString(i + 1) + ")", typeof(int));
                column[(n - 1) / 2 + 1 + (i + 1)] = new DataColumn("C(i+" + Convert.ToString(i + 1) + ")", typeof(int));
            }
            //重设表
            paratable.Columns.Clear();
            paratable.Rows.Clear();
            //加入新数据
            paratable.Columns.AddRange(column);
            DataRow newrow = paratable.NewRow();
            newrow[0] = 0;
            newrow[n + 1] = 0;
            for (int i = 0; i < n; i++)
            {
                newrow[i + 1] = row[i];
            }
            paratable.Rows.Add(newrow);
            paratable.AcceptChanges();
        }
        #endregion 

        #region "移动窗体"
        private bool moveenable;
        private int px;
        private int py;

        private void panelCaption_MouseDown(object sender, MouseEventArgs e)
        {
            moveenable = true;
            //保存原始的坐标点,便于移动时计算相对距离
            px = e.X;
            py = e.Y;
        }

        private void panelCaption_MouseMove(object sender, MouseEventArgs e)
        {
            if (moveenable)
            {
                this.Left += e.X - px;
                this.Top += e.Y - py;
                this.Refresh();
                frmmain.Refresh();
            }
        }

        private void panelCaption_MouseUp(object sender, MouseEventArgs e)
        {
            moveenable = false;
        }
        #endregion

        #region "删除参数值"
        /// <summary>
        /// 删除参数值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibtDelect_MouseUp(object sender, MouseEventArgs e)
        {
            if (paratable.Columns.Count > 3)
            {
                paratable.Columns.RemoveAt(0);
                paratable.Columns.RemoveAt(paratable.Columns.Count - 1);
                paratable.AcceptChanges();
            }
        }
        #endregion

        #region "控制输入面板"
        private void nUpDownvalue_GotFocus(object sender, EventArgs e)
        {
            inputPanel.Enabled = true;
        }

        private void nUpDownvalue_LostFocus(object sender, EventArgs e)
        {
            inputPanel.Enabled = false;
        }
        #endregion
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -