基本信息
源码名称:WinForm,C#扫描枪 示例源码
源码大小:0.50M
文件格式:.rar
开发语言:C#
更新时间:2017-09-29
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 10 元×
微信扫码支付:10 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
(WinForm,C#扫描枪
(WinForm,C#扫描枪
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Configuration;
namespace Scan_Pro.View
{
/// <summary>
/// 桶的扫描操作类
/// </summary>
public partial class frmScanOpterate : Form
{
public frmScanOpterate()
{
InitializeComponent();
}
#region 窗体属性加载
private void frmScanOpterate_Load(object sender, EventArgs e)
{
if (!System.IO.File.Exists(Scan_Pro.Opteration.ScanOpterate.mStrFileName))
{
frmInit frmIn = new Scan_Pro.frmInit();
frmIn.Text = "初始化桶";
frmIn.ShowDialog();
}
//默认设置桶(最大容量和最大数目)
Scan_Pro.Opteration.ScanOpterate.LoadSetDefaultBoxCoutMaxAndBoxCapactity();
//刷新桶中的数据
//Scan_Pro.Opteration.ScanOpterate.LoadNum(listView);//利用ListView实现
//Scan_Pro.Opteration.ScanOpterate.LoadNumber(dataGridView);//方法1
Scan_Pro.Opteration.ScanOpterate.InitBoxToDataGridView(dataGridView);
Scan_Pro.Opteration.ScanOpterate.LoadAllBarCode(dataGridView);//方法2(最优化的方法)
}
#endregion
#region 取消
private void btnCancel_Click(object sender, EventArgs e)
{
Application.Exit();
}
#endregion
#region 确定
private void btnStartScan_Click(object sender, EventArgs e)
{
Cursor = Cursors.WaitCursor;
if (txtPageNum.Text.Trim() == "")
{
Scan_Pro.View.ZMessageBox.Show("", "条码不能为空!", 2);
Cursor = Cursors.Default;
return;
}
int BoxNum;
string pStr = GetstrTrim(txtPageNum.Text.Trim());
int Stat = Scan_Pro.Opteration.ScanOpterate.ScanStat(pStr, out BoxNum);
if(Stat==1)//扫描到条码
{
DialogResult drIs=ZMessageBox.Show(BoxNum.ToString(),1);
if (drIs.ToString() == "OK")
{
Scan_Pro.Opteration.ScanOpterate.setScanNumOk(pStr);
txtPageNum.Clear();
}
}
else if(Stat==3)//没有扫描到,桶中有空位
{
DialogResult dr1 =ZMessageBox.Show(BoxNum.ToString(),2);
if (dr1.ToString() == "OK")//追加该号码到容积中
{
Scan_Pro.Opteration.ScanOpterate.AddPageNum(pStr);
txtPageNum.Clear();
}
}
else if (Stat == 2)//没有扫描到,桶中没有空位
{
DialogResult dr = Scan_Pro.View.ZMessageBox.Show("", "桶已经装满(按F11键扩容)", 2);
if (dr.ToString() == "OK")
{
frmInit frmIn = new frmInit();
frmIn.ShowDialog();
Scan_Pro.Opteration.ScanOpterate.InitBoxToDataGridView(dataGridView);
Scan_Pro.Opteration.ScanOpterate.AddPageNum(pStr);
txtPageNum.Clear();
}
}
else
{
DialogResult dr = Scan_Pro.View.ZMessageBox.Show("", "请追加桶!", 2);
if (dr.ToString() == "OK")
{
frmInit frmIn = new frmInit();
frmIn.Text = "追加桶";
frmIn.ShowDialog();
Scan_Pro.Opteration.ScanOpterate.InitBoxToDataGridView(dataGridView);
Scan_Pro.Opteration.ScanOpterate.AddPageNum(pStr);
txtPageNum.Clear();
}
}
txtPageNum.SelectAll();
Cursor = Cursors.Default;
//Scan_Pro.Opteration.ScanOpterate.LoadNumber(dataGridView);//方法1
Scan_Pro.Opteration.ScanOpterate.LoadAllBarCode(dataGridView);//方法2
}
#endregion
#region 快捷键和输入字符限制实现
private void frmScanOpterate_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
DialogResult dr = Scan_Pro.View.ZMessageBox.Show("", "确认要退出码?", 2); ;
if(dr.ToString()=="OK")
Application.Exit();
}
else if (e.KeyCode == Keys.Enter)
btnStartScan_Click(sender, new EventArgs());
else if (e.KeyCode == Keys.F11)
{
Scan_Pro.frmInit frmInit = new Scan_Pro.frmInit();
frmInit.Text = "扩容";
frmInit.ShowDialog();
Scan_Pro.Opteration.ScanOpterate.InitBoxToDataGridView(dataGridView);
Scan_Pro.Opteration.ScanOpterate.LoadAllBarCode(dataGridView);
}
else if(e.Control)//删除选中的条码
{
if(e.KeyCode==Keys.Delete)
{
Scan_Pro.Opteration.ScanOpterate.DeleteNumSelected(dataGridView);
Scan_Pro.Opteration.ScanOpterate.InitBoxToDataGridView(dataGridView);
Scan_Pro.Opteration.ScanOpterate.LoadAllBarCode(dataGridView);//方法2(最优化的方法)
}
}
else if (e.KeyCode == Keys.F2)//初始化桶
{
if (System.IO.File.Exists(Scan_Pro.Opteration.ScanOpterate.mStrFileName))
{
DialogResult dr = Scan_Pro.View.ZMessageBox.Show("清空", "所有条码吗?", 4);
if (dr.ToString() == "OK")
{
if (System.IO.File.Exists(Scan_Pro.Opteration.ScanOpterate.mStrFileName))
{
Scan_Pro.Opteration.ScanOpterate.DeleteAllNodeNum();
Scan_Pro.Opteration.ScanOpterate.InitBoxToDataGridView(dataGridView);
Scan_Pro.Opteration.ScanOpterate.LoadAllBarCode(dataGridView);
}
}
}
}
else if (e.KeyCode == Keys.F1)//帮助
{
Scan_Pro.View.frmHelp frmSh = new frmHelp();
frmSh.ShowDialog();
}
else if (e.KeyCode == Keys.F5)
{
//Scan_Pro.Opteration.ScanOpterate.LoadAllBarCode(dataGridView);
}
else if (e.KeyCode == Keys.F7)//设置桶和容积的上限
{
frmInit frmIn = new frmInit("设置桶和容积的上限");
frmIn.ShowDialog();
}
if (e.KeyCode == Keys.Back)
{
IsBackspace = true;
}
else
{
IsBackspace = false;
}
}
private bool nonNumberEntered = false;
private void txtPageNum_KeyDown(object sender, KeyEventArgs e)
{
CheckInputChar(sender,e);
}
private void txtPageNum_KeyPress(object sender, KeyPressEventArgs e)
{
if(nonNumberEntered)
{
e.Handled = true;
}
}
//只接受数字和字符(a---z)或者(A--Z)
private bool CheckInputChar(object sender, KeyEventArgs e)
{
nonNumberEntered = false;
// Determine whether the keystroke is a number from the top of the keyboard.
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
// Determine whether the keystroke is a number from the keypad.
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
{
// Determine whether the keystroke is a backspace.
if (e.KeyCode != Keys.Back)
{
// A non-numerical keystroke was pressed.
// Set the flag to true and evaluate in KeyPress event.
nonNumberEntered = true;
}
}
}
if (e.KeyCode >=Keys.A && e.KeyCode <= Keys.Z)
{
nonNumberEntered = false;
}
return nonNumberEntered;
}
#endregion
#region 格式化输入字符串
//字符格式化(每5个字符加一个空格)
private bool IsSuss = false;
private bool IsBackspace = false;
private void txtPageNum_TextChanged(object sender, EventArgs e)
{
if (txtPageNum.Text!= "")
{
string pStrInput = txtPageNum.Text;
char []chBefore = pStrInput.ToCharArray();
string pStrNew = "";
foreach(char ch in chBefore)
{
if(ch!=' ')
pStrNew =ch.ToString();
}
char[] chNow = pStrNew.ToCharArray();
string pStrNow = "";
for (int i = 0; i < chNow.Length; i )
{
if (i % 5 == 0 && i >=5)
{
pStrNow = " ";
}
pStrNow = chNow[i].ToString();
if (i == chNow.Length - 1)
{
IsSuss = true;
}
}
txtPageNum.Select(pStrNow.Length, pStrNow.Length);
if (IsSuss && !IsBackspace)
{
IsSuss = false;
txtPageNum.Text = pStrNow;
return;
}
}
}
#endregion
private string GetstrTrim( string pStrInput)
{
string pStrNew = "";
foreach (char ch in pStrInput.ToCharArray())
{
if (ch != ' ')
pStrNew = ch.ToString();
}
return pStrNew;
}
private void dataGridView_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex==-1 || e.RowIndex==-1) return;
if (dataGridView.Rows.Count != 0)
{
if (e.ColumnIndex > 1)
{
if (e.Button == MouseButtons.Left)
{
dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
}
}
else
{
dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = false;
}
}
}
}
}