在这里插入代码片
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20210310135839799.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MDQ4Nzc5,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210310135839802.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MDQ4Nzc5,size_16,color_FFFFFF,t_70)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.IO.Ports;
using System.Threading;
using System.Data.OleDb;
namespace ETCSystem
{
public partial class Form1 : Form
{
Boolean IsLogined = false;
Boolean IsConnected = false;
private SerialPort SerialPort;
private Thread Thread;
private delegate void ThreadCallback(ThreadResp resp, String msg);
private ThreadCallback threadCallback;
public enum ThreadResp
{
error,
updateLabel,
updateTag
}
public enum operation
{
add,
sub
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
RefreshCom();
String[] strValue = { "7200", "9600", "14400", "19200", "38400", "57600", "115200", "128000", "230400", "460800", "921600", "1228800" };
cmb_BaudRate.Items.AddRange(strValue);
cmb_BaudRate.SelectedItem = "115200";
threadCallback = new ThreadCallback(threadResp);
panelHide();
panel_PayInfo.Visible = true;
}
private void panelHide()
{
panel_PayInfo.Visible = false;
panel1.Visible = false;
panel_TopUp.Visible = false;
}
/// <summary>
/// 线?程¨¬接¨®收º?到Ì?数ºy据Y时º¡À响¨¬应®|
/// </summary>
/// <param name="resp"></param>
/// <param name="msg"></param>
private void threadResp(ThreadResp resp, String msg)
{
switch (resp)
{
case ThreadResp.error:
MessageBox.Show(msg, "错䨪误¨®", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
case ThreadResp.updateLabel:
lbl_Connect.Text = msg;
break;
case ThreadResp.updateTag:
txt_Snr.Text = msg;
btn_RegisterOrTopUp.Visible = true;
panelHide();
panel_PayInfo.Visible = true;
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb;Persist Security Info=True";
//conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\database.accdb;Persist Security Info=True";
conn.Open();
String sql = String.Format("SELECT * FROM tab_CarInfo WHERE CardID='{0}'", msg);
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
txt_info.Text = "缴¨¦费¤?信?息¡é";
txt_PayInfo_Name.ReadOnly = true;
txt_PayInfo_CarNum.ReadOnly = true;
txt_PayInfo_Phone.ReadOnly = true;
txt_PayInfo_Pay.ReadOnly = true;
txt_PayInfo_balance.ReadOnly = true;
btn_RegisterOrTopUp.Text = "充?值¦Ì";
btn_RegisterOrTopUp.Image = RFID_ETCSystem.Properties.Resources.top_up;
bn_DeleteOrSave.Visible = true;
btn_DeleteOrSave.Text = "删¦?除y";
btn_DeleteOrSave.Image = RFID_ETCSystem.Properties.Resources.delete;
txt_PayInfo_Name.Text = dr["UserName"].ToString().Trim();
txt_PayInfo_CarNum.Text = dr["CarNum"].ToString().Trim();
txt_PayInfo_Phone.Text = dr["Phone"].ToString().Trim();
txt_PayInfo_Pay.Text = "10";
Int32 balance = Int32.Parse(dr["Balance"].ToString().Trim());
if (balance < 10)
{
txt_PayInfo_balance.Text = balance.ToString();
MessageBox.Show("您¨²的Ì?余®¨¤额?不?足Á?,ê?请?充?值¦Ì", "错䨪误¨®", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
updateBalance(msg, "10", operation.sub);
txt_PayInfo_balance.Text = (balance - 10).ToString();
}
}
else
{
txt_info.Text = "车¦Ì辆¢?未¡ä登Ì?记?";
txt_PayInfo_Name.ReadOnly = true;
txt_PayInfo_CarNum.ReadOnly = true;
txt_PayInfo_Phone.ReadOnly = true;
txt_PayInfo_Pay.ReadOnly = true;
txt_PayInfo_balance.ReadOnly = true;
btn_RegisterOrTopUp.Text = "登Ì?记?";
btn_RegisterOrTopUp.Image = RFID_ETCSystem.Properties.Resources.registerCar_32;
bn_DeleteOrSave.Visible = false;
txt_PayInfo_Name.Text = "";
txt_PayInfo_CarNum.Text = "";
txt_PayInfo_Phone.Text = "";
txt_PayInfo_Pay.Text = "";
txt_PayInfo_balance.Text = "";
}
conn.Close();
conn = null;
cmd = null;
dr = null;
break;
default:
break;
}
}
/// <summary>
/// 刷¡é新?串ä?口¨²设¦¨¨备À?,ê?将?连¢?接¨®到Ì?PC上¦?的Ì?串ä?口¨²设¦¨¨备À?显?示º?到Ì?相¨¤应®|的Ì?串ä?口¨²下?拉¤-列¢D表À¨ª中D
/// </summary>
public void RefreshCom()
{
List<String> ComList;
cmb_PortNum.Items.Clear();
cmb_PortNum.Text = "";
if (GetComList(out ComList) > 0)
{
foreach (String com in ComList)
{
cmb_PortNum.Items.Add(com);
}
cmb_PortNum.SelectedIndex = 0;
}
}
/// <summary>
/// 取¨?得Ì?连¢?接¨®到Ì?PC上¦?的Ì?串ä?口¨²设¦¨¨备À?的Ì?串ä?口¨²号?方¤?法¤¡§
/// </summary>
/// <param name="ComList"></param>
/// <returns></returns>
public Int32 GetComList(out List<String> ComList)
{
RegistryKey keyCom = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm");
if (keyCom != null)
{
string[] sSubKeys = keyCom.GetValueNames();
ComList = new List<string>();
foreach (string sName in sSubKeys)
{
ComList.Add((string)keyCom.GetValue(sName));
}
return ComList.Count;
}
else
{
ComList = null;
return 0;
}
}
private void btn_Login_Click(object sender, EventArgs e)
{
if (IsLogined)
{
lbl_Login.Text = "您¨²已°?经-登Ì?录?!";
return;
}
if (txt_UserName.Text.Trim() == "")
{
lbl_Login.Text = "请?填¬?写¡ä用®?户¡ì名?!";
return;
}
if (txt_PassWord.Text.Trim() == "")
{
lbl_Login.Text = "请?填¬?写¡ä密¨¹码?!";
return;
}
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb;Persist Security Info=True";
conn.Open();
String sql = String.Format("SELECT PassWord FROM tab_User WHERE UserName='{0}'", txt_UserName.Text.Trim());
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
if (((String)dr["PassWord"]).Trim() == txt_PassWord.Text.Trim())
{
IsLogined = true;
lbl_Login.Text = String.Format("登Ì?录?成¨¦功|,ê?尊Áe敬¡ä的Ì?用®?户¡ì,ê?欢?迎®-您¨²!", txt_UserName.Text.Trim());
}
else
{
lbl_Login.Text = "您¨²的Ì?密¨¹码?错䨪误¨®, 请?重?新?填¬?写¡ä!";
txt_PassWord.Text = "";
txt_PassWord.Focus();
}
}
else
{
lbl_Login.Text = "您¨²的Ì?用®?户¡ì名?不?存ä?在¨²¨¡ì,ê?请?重?新?填¬?写¡ä!";
txt_UserName.Text = "";
txt_UserName.Focus();
}
conn.Close();
conn = null;
cmd = null;
dr = null;
}
private void btn_Reset_Click(object sender, EventArgs e)
{
txt_UserName.Text = "";
txt_PassWord.Text = "";
}
private void btn_Logout_Click(object sender, EventArgs e)
{
if (!IsLogined)
{
lbl_Login.Text = "尚¦D未¡ä登Ì?录?,ê?不?能¨¹注Á¡éÁ§¡é销¨²!";
return;
}
IsLogined = false;
lbl_Login.Text = "已°?注Á¡é销¨²,ê?继¨¬续?使º1用®?需¨¨重?新?登Ì?录?!";
}
private void btn_SerialOpen_Click(object sender, EventArgs e)
{
if (!IsLogined)
{
lbl_Connect.Text = "尚¦D未¡ä登Ì?录?,ê?不?能¨¹打䨰开a串ä?口¨²!";
return;
}
if (IsConnected)
{
lbl_Connect.Text = "串ä?口¨²已°?经-打䨰开a,ê?不?能¨¹重?复¡ä打䨰开a串ä?口¨²!ê?";
return;
}
if (cmb_PortNum.SelectedIndex < 0)
{
lbl_Connect.Text = "请?选?择?与®?设¦¨¨备À?连¢?接¨®的Ì?串ä?口¨²地Ì?址¡¤!ê?";
return;
}
if (cmb_BaudRate.SelectedIndex < 0)
{
lbl_Connect.Text = "错䨪误¨®:请?选?择?合?适º¨º的Ì?波¡§特¬?率¨º!ê?";
cmb_BaudRate.Focus();
return;
}
String PortName = cmb_PortNum.Text.Trim();
Int32 BaudRate = Int32.Parse(cmb_BaudRate.Text.Trim());
try
{
SerialPort = new SerialPort(PortName);
SerialPort.BaudRate = BaudRate;
SerialPort.DataBits = 8;
SerialPort.StopBits = StopBits.One;
SerialPort.Parity = Parity.None;
SerialPort.Open();
if (SerialPort.IsOpen) //打䨰开a成¨¦功||
{
lbl_Connect.Text = String.Format("串ä?口¨²打䨰开a成¨¦功|!", PortName);
IsConnected = true;
//启?动¡¥线?程¨¬接¨®收º?数ºy据Y
Thread = new Thread(new ThreadStart(receiveThread));
Thread.IsBackground = true;
Thread.Start();
Thread.Sleep(20);
sendAFrame();
}
else//打䨰开a失º¡ì败㨹
{
lbl_Connect.Text = String.Format("串ä?口¨²打䨰开a失º¡ì败㨹!ê?", PortName);
IsConnected = false;
}
}
catch
{
lbl_Connect.Text = String.Format("串ä?口¨²打䨰开a失º¡ì败㨹!ê?", PortName);
IsConnected = false;
}
}
private void receiveThread()
{
Byte[] rcvData = new Byte[125];
String rcvStr = "";
DateTime startTime = DateTime.Now.AddSeconds(-5);
DateTime endTime;
TimeSpan timeSpan;
while (IsConnected)
{
try
{
while (SerialPort.BytesToRead > 0)
{
Int32 count = SerialPort.Read(rcvData, 0, rcvData.Length);
for (Int32 i = 0; i < count; i++)
{
rcvStr += String.Format("{0:X2}", rcvData[i]);
}
}
if (!rcvStr.Equals(""))
{
endTime = System.DateTime.Now;
timeSpan = endTime.Subtract(startTime);
startTime = endTime;
if (timeSpan.Seconds >= 2)
{
//数ºy据Y处ä|理¤¨ª
Int32 StartPos, StopPos;
StartPos = rcvStr.IndexOf("EECC");
StopPos = rcvStr.IndexOf("0D0A");
if ((StartPos >= 0) && (StopPos > StartPos))
{
String framestr = rcvStr.Substring(StartPos, StopPos - StartPos + 4);
processAFrame(framestr);
rcvStr = rcvStr.Remove(0, StopPos + 4);
}
}
rcvStr = "";
}
}
catch (Exception ex)
{
this.BeginInvoke(threadCallback, ThreadResp.error, String.Format("数ºy据Y接¨®收º?异°¨¬常¡ê?异°¨¬常¡ê信?息¡é为a", ex.Message));
IsConnected = false;
break;
}
Thread.Sleep(20);
}
try
{
SerialPort.Close();
SerialPort = null;
this.BeginInvoke(threadCallback, ThreadResp.updateLabel, "串ä?口¨²关?闭À?成¨¦功|!ê?");
}
catch
{ }
}
/// <summary>
/// 15693发¤¡é送¨ª一°?帧?数ºy据Y的Ì?方¤?法¤¡§
/// </summary>
/// <param name="command"></param>
/// <param name="select"></param>
/// <param name="data"></param>
private void sendAFrame()
{
if (!IsConnected)
{
lbl_Connect.Text = "错䨪误¨®请?先¨¨通ª¡§过y串ä?口¨²连¢?接¨®设¦¨¨备À?!ê?";
return;
}
Byte[] frame = new Byte[12];
frame[0] = 0xEE;
frame[1] = 0xCC;
frame[2] = 0x01;
frame[3] = 0x05;
frame[4] = 0x00;
frame[5] = 0x00;
frame[6] = 0x01;
frame[7] = 0x00;
frame[8] = 0x00;
frame[9] = 0x00;
frame[10] = 0x0D;
frame[11] = 0x0A;
try
{
SerialPort.Write(frame, 0, frame.Length);
}
catch (InvalidOperationException ex)
{
lbl_Connect.Text = String.Format("发¤¡é送¨ª异°¨¬常¡ê!ê?", ex.Message);
IsConnected = false;
}
}
/// <summary>
/// 15693解a析?一°?帧?数ºy据Y的Ì?方¤?法¤¡§
/// </summary>
/// <param name="frameStr"></param>
private void processAFrame(String frameStr)
{
Byte[] framedata = new Byte[frameStr.Length / 2];
for (int i = 0; i < framedata.Length; i++)
{ framedata[i] = Convert.ToByte(frameStr.Substring(i * 2, 2), 16); }
Byte statusCode = framedata[2];
Byte LByte = framedata[6];
Byte HByte = framedata[5];
Int32 DataLength = HByte * 256 + LByte;
String DataByte = frameStr.Substring(14, DataLength * 2);
this.BeginInvoke(threadCallback, ThreadResp.updateTag, DataByte);
}
private void btn_SerialClose_Click(object sender, EventArgs e)
{
if (!IsConnected)
{
lbl_Connect.Text = "串ä?口¨²尚¦D未¡ä打䨰开a,ê?无T需¨¨关?闭À?";
return;
}
else
{
IsConnected = false;
}
}
private void btn_SerialRefresh_Click(object sender, EventArgs e)
{
RefreshCom();
}
private void btn_RegisterOrTopUp_Click(object sender, EventArgs e)
{
if (btn_RegisterOrTopUp.Text.Equals("登Ì?记?"))
{
txt_info.Text = "车¦Ì辆¢?登Ì?记?";
panelHide();
panel1.Visible = true;
txt_money.Text = "充?值¦Ì金e额?:";
txt_Register_Name.Clear();
txt_Register_CarNum.Clear();
txt_Register_Phone.Clear();
txt_Register_TopUp.Clear();
txt_Register_Name.ReadOnly = false;
txt_Register_CarNum.ReadOnly = false;
txt_Register_Phone.ReadOnly = false;
txt_Register_TopUp.ReadOnly = false;
bn_DeleteOrSave.Visible = true;
btn_DeleteOrSave.Text = "保À¡ê存ä?";
btn_DeleteOrSave.Image = RFID_ETCSystem.Properties.Resources.save_48;
}
else
{
txt_info.Text = "充?值¦Ì";
panelHide();
panel_TopUp.Visible = true;
String strCarID = txt_Snr.Text.Trim();
if (strCarID.Equals(""))
{
MessageBox.Show("未¡ä发¤¡é现?卡¡§片?!ê?错䨪误¨®");
return;
}
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb;Persist Security Info=True";
conn.Open();
String sql = String.Format("SELECT * FROM tab_CarInfo WHERE CardID='{0}'", strCarID);
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
txt_TopUP_balance.Text = dr["Balance"].ToString().Trim();
}
else
{
MessageBox.Show("卡¡§片?未¡ä注Á¡é册¨¢,ê?请?先¨¨注Á¡é册¨¢!ê?提¬¨¢示º?");
}
conn.Close();
conn = null;
cmd = null;
dr = null;
txt_TopUp.Clear();
bn_DeleteOrSave.Visible = false;
}
}
private void btn_DeleteOrSave_Click(object sender, EventArgs e)
{
String strCardID = txt_Snr.Text.Trim();
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb;Persist Security Info=True";
OleDbCommand cmd;
if (strCardID.Equals(""))
{
MessageBox.Show("未¡ä发¤¡é现?卡¡§片?!ê?错䨪ª误¨®");
return;
}
if (btn_DeleteOrSave.Text.Equals("删¦?¦除y"))
{
try
{
conn.Open();
String sql = String.Format("DELETE FROM tab_CarInfo WHERE CardID='{0}'", strCardID);
cmd = new OleDbCommand(sql, conn);
if (cmd.ExecuteNonQuery() > 0)
{
bn_DeleteOrSave.Visible = false;
btn_RegisterOrTopUp.Text = "登Ì?记?";
btn_RegisterOrTopUp.Image = RFID_ETCSystem.Properties.Resources.registerCar_32;
MessageBox.Show("删¦?除y成¨¦功|!ê?", "提¬¨¢示º??");
txt_info.Text = "车¦Ì辆¢?未¡ä登Ì?记?";
txt_PayInfo_Name.Clear();
txt_PayInfo_CarNum.Clear();
txt_PayInfo_Phone.Clear();
txt_PayInfo_Pay.Clear();
txt_PayInfo_balance.Clear();
txt_Register_Name.Clear();
txt_Register_CarNum.Clear();
txt_Register_TopUp.Clear();
txt_Register_Phone.Clear();
conn.Close();
conn = null;
cmd = null;
}
}
catch (Exception ex)
{
MessageBox.Show(String.Format("删¦?¦除y错䨪误¨®,ê?错䨪误¨®信?息¡é", ex), "错䨪误¨®");
}
}
else
{
//保À¡ê存ä?登Ì?记?信?息¡é
String strName = txt_Register_Name.Text.Trim();
String strCarNum = txt_Register_CarNum.Text.Trim();
String strPhone = txt_Register_Phone.Text.Trim();
String strMoney = txt_Register_TopUp.Text.Trim();
if (strName.Equals(""))
{
MessageBox.Show("请?输º?入¨?车¦Ì主¡Â姓?名?", "错䨪ª误¨®");
return;
}
if (strCarNum.Equals(""))
{
MessageBox.Show("请?输º?入¨?车¦Ì牌?号?!ê?", "错䨪误¨®");
return;
}
try
{
conn.Open();
String sql = "insert into tab_CarInfo(CardID, UserName, CarNum, Phone, Balance) values('" + strCardID + "', '" + strName + "', '" + strCarNum + "', '" + strPhone + "', '" + strMoney + "')";
cmd = new OleDbCommand(sql, conn);
if (cmd.ExecuteNonQuery() > 0)
{
btn_RegisterOrTopUp.Text = "充?值¦Ì";
btn_RegisterOrTopUp.Image = RFID_ETCSystem.Properties.Resources.top_up;
txt_info.Text = "车¦Ì辆¢?信?息¡é";
MessageBox.Show("登Ì?记?完ª¨º成¨¦!ê?", "提¬¨¢示º?");
btn_DeleteOrSave.Text = "删¦?除y";
btn_DeleteOrSave.Image = RFID_ETCSystem.Properties.Resources.delete;
conn.Close();
conn = null;
cmd = null;
txt_money.Text = "余®¨¤额?:êo";
txt_Register_Name.ReadOnly = true;
txt_Register_CarNum.ReadOnly = true;
txt_Register_Phone.ReadOnly = true;
txt_Register_TopUp.ReadOnly = true;
txt_PayInfo_Name.Text = strName;
txt_PayInfo_CarNum.Text = strCarNum;
txt_PayInfo_Phone.Text = strPhone;
txt_PayInfo_balance.Text = strMoney;
}
}
catch (Exception ex)
{
MessageBox.Show(String.Format("保À¡ê存ä?错䨪误¨®,ê?错䨪误¨®信?息¡é", ex), "错䨪误¨®");
}
}
}
private void txt_Register_Phone_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)13 && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
private void txt_TopUp_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)13 && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
private void btn_Confirm_Click(object sender, EventArgs e)
{
String strCardID = txt_Snr.Text.Trim();
if (strCardID.Equals(""))
{
MessageBox.Show("未¡ä发¤¡é现?卡¡§片?!ê?", "错䨪误¨®");
return;
}
String strMoney = txt_TopUp.Text.Trim();
MessageBox.Show(updateBalance(strCardID, strMoney, operation.add), "提¬¨¢示º?");
}
private void btn_Cancle_Click(object sender, EventArgs e)
{
panelHide();
panel_PayInfo.Visible = true;
txt_info.Text = "车¦Ì辆¢?信?息¡é";
bn_DeleteOrSave.Visible = true;
btn_DeleteOrSave.Image = RFID_ETCSystem.Properties.Resources.delete;
btn_DeleteOrSave.Text = "删¦?除y";
}
private String updateBalance(String CardID, String strMoney, operation operation)
{
String msg = "";
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb;Persist Security Info=True";
conn.Open();
String sql = String.Format("SELECT * FROM tab_CarInfo WHERE CardID='{0}'", CardID);
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
Int32 balance = Int32.Parse(dr["Balance"].ToString().Trim());
Int32 topUp = Int32.Parse(strMoney);
String strBalance = "0";
switch (operation)
{
case operation.add:
strBalance = (balance + topUp).ToString();
break;
case operation.sub:
strBalance = (balance - topUp).ToString();
break;
default:
break;
}
string strUpdt = String.Format("UPDATE tab_CarInfo SET Balance = '" + strBalance + "' WHERE CardID='{0}'", CardID);
cmd = new OleDbCommand(strUpdt, conn);
if (cmd.ExecuteNonQuery() > 0)
{
if (operation == operation.add)
{
msg = "充?值¦Ì成¨¦功|!ê?";
}
txt_PayInfo_balance.Text = strBalance;
txt_TopUP_balance.Text = strBalance;
}
else
{
if (operation == operation.add)
{
msg = "充?值¦Ì失º¡ì败㨹!ê?";
}
}
}
else
{
msg = "卡¡§片?未¡ä注Á¡é册¨¢¨¡ì,ê?请?先¨¨注Á¡é册¨¢!ê?";
}
conn.Close();
conn = null;
cmd = null;
dr = null;
return msg;
}
private void txt_Register_TopUp_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)13 && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
private void tabPage2_Click(object sender, EventArgs e)
{
}
private void btn_RegisterOrTopUp_RefreshItems(object sender, EventArgs e)
{
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
}
private void bindingNavigator1_RefreshItems(object sender, EventArgs e)
{
}
}
}
ETC系统
最新推荐文章于 2021-05-01 04:18:21 发布