📄 frmmain.cs
字号:
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.Xml;
using System.IO;
using Custom;
using DAS;
using System.Runtime.InteropServices;
namespace MCA
{
/// <summary>
/// 主窗口
/// </summary>
public class FrmMain : System.Windows.Forms.Form
{
#region "DLL声明"
/// <summary>
/// 创建设备DC
/// </summary>
/// <param name="lpszDriver">驱动名称</param>
/// <param name="lpszDevice">设备名称</param>
/// <param name="lpszOutput">无用,可以设定位"NULL"</param>
/// <param name="lpInitData">任意的打印机数据</param>
/// <returns></returns>
[DllImport("coredll.dll")]
private static extern IntPtr CreateDC(
string lpszDriver, // 驱动名称
string lpszDevice, // 设备名称
string lpszOutput, // 无用,可以设定位"NULL"
IntPtr lpInitData // 任意的打印机数据
);
#endregion
#region "私有变量"
private System.Windows.Forms.ToolBar toolBar;
private System.Windows.Forms.ToolBarButton tbbtOpen;
private System.Windows.Forms.ToolBarButton tbbtSave;
private System.Windows.Forms.ImageList imageList;
private System.Windows.Forms.OpenFileDialog openFileDialog;
private System.Windows.Forms.SaveFileDialog saveFileDialog;
private System.Windows.Forms.ToolBarButton tbbtStartstop;
private System.Windows.Forms.ToolBarButton tbbtNew;
private System.Windows.Forms.ToolBarButton tbbtSetting;
private System.Windows.Forms.Timer timer;
private System.Windows.Forms.ToolBarButton tbbtPlaystop;
private System.Windows.Forms.ToolBarButton tbbtCoordinate;
private System.Windows.Forms.ToolBarButton tbbtHelp;
internal System.Windows.Forms.Panel panel3;
private System.Windows.Forms.PictureBox pbTime;
private System.Windows.Forms.PictureBox pbCount;
private ToolBarButton tbbtFill;
private DAnalyzer analyzer;
private Panel panel4;
private ToolBarButton tbbtMax;
private ToolBarButton tbbtExtend;
private ToolBarButton tbbtScale;
private ToolBarButton tbbtAnalyzer;
internal Panel panel1;
internal DDrawBox zdrawbox;
private ImageButton ibtzYshrink;
private ImageButton ibtzYextend;
internal Label lbTime;
internal Label lbCount;
/// <summary>
/// 多道数据
/// </summary>
internal DAS.DData data;
/// <summary>
/// 是否自动量程
/// </summary>
private bool autoscale;
/// <summary>
/// 停机时间
/// </summary>
internal int stoptime;
/// <summary>
/// 停机计数
/// </summary>
internal int stopcount;
/// <summary>
/// 停机类型
/// </summary>
internal StopType stoptype;
/// <summary>
/// 回放的时间点
/// </summary>
private int timepoint;
/// <summary>
/// 选择的区域
/// </summary>
private int channel1;
private int channel2;
/// <summary>
/// 当前时间
/// </summary>
private int nowtp;
/// <summary>
/// 当前计数
/// </summary>
private int nowcs;
/// <summary>
/// 新建时间点数
/// </summary>
internal int newtps;
/// <summary>
/// 新建道数
/// </summary>
internal int newcns;
private Timer realtimer;
private ImageButton ibtXextend;
private ImageButton ibtMax;
private ImageButton ibtzXnext;
private ImageButton ibtzXlast;
private ImageButton ibtScale;
private ImageButton ibtAnalyzer;
private Panel panel5;
internal Panel panel2;
private ImageButton ibtChannelsShrink;
private ImageButton ibtChannelsExtend;
private ImageButton ibtChannelsFit;
internal DDrawBox drawbox;
private Panel panel6;
private HScrollBar hSBRegion;
private Panel panel7;
private Panel panel8;
private Label lbRegionEnd;
private Label lbRegionStart;
private Panel panel12;
private Panel panel11;
private Panel panel10;
private Panel panel9;
private Panel panel;
private Panel panel13;
private Panel panel14;
private ToolBarButton tbbtGrid;
private ToolBarButton toolBarButton1;
private DataGrid gridPeak;
private Panel panel15;
private ImageButton ibtPeak;
private ImageButton ibtSmooth;
private ImageButton ibtCalibrate;
private ImageButton ibtArea;
private ContextMenu cMenuSmooth;
private MenuItem mItem5;
private MenuItem mItem7;
private MenuItem mItem9;
private MenuItem mItem11;
private MenuItem mItem13;
private ContextMenu cMenuPeak;
private MenuItem mItemFilter;
private MenuItem mItemCovariance;
private MenuItem mItemLinearity;
private MenuItem mItemDerivative;
private MenuItem menuItem1;
private MenuItem mItemUndo;
private MenuItem mItemManul;
/// <summary>
/// 数据显示委托
/// </summary>
private delegate void datashowhandler();
private datashowhandler dataShow;
internal Color peakcolor;
internal Color activatedpeakcolor;
//
private FrmSetting frmsetting;
private FrmManualSmooth frmmanualsmooth;
private FrmInput frminput;
private FrmCalibrate frmcalibrate;
//
private DataGridTableStyle dataGridTableStyle1;
private DataGridTextBoxColumn dataGridTextBoxColumn1;
private DataGridTextBoxColumn dataGridTextBoxColumn2;
private DataGridTextBoxColumn dataGridTextBoxColumn3;
private DataGridTextBoxColumn dataGridTextBoxColumn4;
private DataGridTextBoxColumn dataGridTextBoxColumn5;
private DataGridTextBoxColumn dataGridTextBoxColumn6;
private DataGridTextBoxColumn dataGridTextBoxColumn7;
//
private DataTable peaktable;
private ContextMenu cMenuCalibrate;
private MenuItem mItemEnergyCal;
private MenuItem mItemPeakCal;
private MenuItem mItemEfficencyCal;
private ContextMenu cMenuArea;
private MenuItem mItemAreaSub;
private MenuItem mItemPeakArea;
private MenuItem mItemManualArea;
//
internal LeastSquareResult caribrateresult;
#endregion
#region "构造函数"
public FrmMain()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//初始化多道数据类
data = new DData(10, 1024, 256, 256);
data.OverFlow += new CountOverFlowEventHandler(data_OverFlow);
data.DataReceived += new EventHandler(data_DataReceived);
//初始化多道分析类
analyzer = new DAS.DAnalyzer();
//初始化自动量程
autoscale = true;
//初始化停机时间
stoptime = 10;
//初始化停机计数
stopcount = 9999;
stoptype = StopType.Manual;
nowcs = 0;
nowtp = 0;
newcns = 1024;
newtps = 10;
//初始化数据显示委托
dataShow = new datashowhandler(DataShow);
//
peakcolor = Color.Red;
activatedpeakcolor = Color.Yellow;
zdrawbox.ActivatedColor = activatedpeakcolor;
//
frmsetting = new FrmSetting();
frmsetting.frmmain = this;
frmmanualsmooth = new FrmManualSmooth();
frmmanualsmooth.frmmain = this;
frminput = new FrmInput();
frminput.frmmain = this;
frmcalibrate = new FrmCalibrate();
frmcalibrate.frmmain = this;
//
peaktable = new DataTable("ROI");
peaktable.Columns.Add("Channel", typeof(double));
peaktable.Columns.Add("Energy(keV)", typeof(double));
peaktable.Columns.Add("Left", typeof(double));
peaktable.Columns.Add("Right", typeof(double));
peaktable.Columns.Add("FWHM(keV)", typeof(double));
peaktable.Columns.Add("Area", typeof(double));
peaktable.Columns.Add("Remark", typeof(string));
gridPeak.DataSource = peaktable;
//
caribrateresult = new LeastSquareResult();
caribrateresult.C = 0;
caribrateresult.B = 0;
caribrateresult.A = 0;
//
IntPtr dc = CreateDC("DISPLAY", null, null, (IntPtr)null);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -