首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么在Winform的页面中获取刷卡机中的数据并弹出窗口

2012-09-08 
如何在Winform的页面中获取刷卡机中的数据并弹出窗口各位童鞋,请教一个问题现在有个需求,想在winform页面

如何在Winform的页面中获取刷卡机中的数据并弹出窗口
各位童鞋,请教一个问题

  现在有个需求,想在winform页面中,只要客户刷卡了,就弹出一个窗口,在窗口中显示卡里的内容,请问怎么获取这个

事件?还是要开个新线程一直监听?

[解决办法]
恩 我这是一个ID卡的读卡器的读卡登陆的代码 你可以参考一下.

C# code
//你的有个serialPort控件.        /// <summary>        /// serialPort的DataReceived事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)        {            try            {                byte[] buffer = new byte[serialPort1.BytesToRead];                serialPort1.Read(buffer, 0, buffer.Length);                string strID = "";                for (int i = 0; i < buffer.Length; i++)                {                    strID = strID + String.Format("{0:X2}", buffer[i]);                }                this.Invoke(interfaceUpdateHandle, strID);            }            catch (Exception ex)            {                MessageBox.Show(ex.Message, "读卡错误", MessageBoxButtons.OK, MessageBoxIcon.Error);            }        }//弄个委托        delegate void HandleInterfaceUpdateDelegate(String text);        HandleInterfaceUpdateDelegate interfaceUpdateHandle;       public CPLoginForm()        {            InitializeComponent();            interfaceUpdateHandle = new HandleInterfaceUpdateDelegate(QueryIDCard);//读卡            CloseSerialPort();//关闭serialPort            OpenSerialPort();//开启serialPort        } /// <summary>        /// 检索Id卡        /// </summary>        /// <param name="strPass"></param>        private void QueryIDCard(string strPass)        {            DataTable dt_id = GetID(strPass);//用读卡器传来的数据验证,这句话是连数据库的,你不用在意.       if (dt_id.Rows.Count <= 0) MessageBox.Show("无效的ID卡!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);            else            {                //验证通过,你可以做你喜欢的~            }        }//关闭SerialPort        private void CloseSerialPort()        {            if (this.serialPort1.IsOpen)            {                                  Application.DoEvents();                                 serialPort1.Close();                              }        }//打开串口private void OpenSerialPort()        {            try            {                if (serialPort1.IsOpen)                {                    CloseSerialPort();                }                else                {                    serialPort1.Open();                }            }            catch (Exception ex)            {                if (idts)                {                    MessageBox.Show("请更改配置文件中的串口设置,错误信息如下:\r\n" + ex.Message, "无法打开串口设备", MessageBoxButtons.OK, MessageBoxIcon.Error);                }            }        }//以上为自己写的代码,功能倒是实现了,但是有点丑,请各位多指正. 

热点排行