各位童鞋,请教一个问题 现在有个需求,想在winform页面中,只要客户刷卡了,就弹出一个窗口,在窗口中显示卡里的内容,请问怎么获取这个事件?还是要开个新线程一直监听?
解决方案 »
- 64位、32位环境引用dll版本号不一致的问题
- c#中怎样将openfiledialog打开的文件显示在listbox中,以及直接显示出来?
- 有哪位高手能帮把这些题给解决了
- 正则表达式的问题
- 咨询高手,DataTable的select()方法的原理
- 关于C#的一些基本问题,请各位大虾给指点一二
- 关于用C#设计KWIC(KEY WORD IN CONTEXT)系统设计模块,看不懂:(在线等注释,非常感谢!HELP!!给分答谢哦:)
- 你们谁能回答这个问题
- 什么叫并发冲突,该如何解决?
- “object”不包含“sqlcon”的定义,并且找不到可接受类型为“object”的第一个参数的扩展方法“sqlcon”(是否缺少 using 指令
- 求助 c#中怎样添加closing事件
- OleDb读取txt文件时自定义分隔符FMT的问题
//你的有个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);
}
}
}//以上为自己写的代码,功能倒是实现了,但是有点丑,请各位多指正.
你需要在之前,设置SerialPort这个控件的COM口号和波特率什么的.你可以选择直接在前台页面选择SerialPort的属性栏里面设置,或者直接在后台通过SerialPort的.点出属性.嗯,就这么多.