实例435 条形码扫描器销售商品
实例说明
如今,许多超市都利用条形码销售商品。微机操作员利用扫描器在商品的条形码处进行扫描,商品的详细信息就会显示在屏幕中。本例实现了利用条形码销售商品的功能。效果如图13.19所示。
技术要点
当利用扫描器扫描条形码时,条形码数据会显示在当前获得焦点的窗口控件中。例如,如果当前编辑框获得焦点,那么条形码数据会显示在TextBox文本框中。然后会向TextBox文本框发送回车键按下时的消息。
在程序中只要触发TextBox文本框的KeyDown事件,判断当前按键是否是回车键,如果是,读取TextBox文本框中的条形码数据,并从数据表中根据条形码查询商品信息,将其显示在DataGridView列表中。
实现过程
(1)新建一个项目,命名为Ex13_18,默认窗体为Form1。
(2)在Form1窗体中,主要添加TextBox控件,用于接收条形码;添加一个DataGridView控件,用于显示扫描器扫描条形码的商品销售信息。
(3)主要程序代码。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "price.mdb" + ";Persist Security Info=False");
OleDbDataAdapter dap = new OleDbDataAdapter("select * from MerchandiseInfo where barcode='" + textBox1.Text + "'", con);
DataSet ds = new DataSet();
dap.Fill(ds);
if (ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("该商品不存在!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
for (int i = 0; i < dataGridView1.RowCount; i++)
{
if (Convert.ToString(dataGridView1[0, i].Value) == "")
{
dataGridView1[0, i].Value = ds.Tables[0].Rows[0][0].ToString();
dataGridView1[1, i].Value = ds.Tables[0].Rows[0][1].ToString();
dataGridView1[2, i].Value = ds.Tables[0].Rows[0][2].ToString();
dataGridView1[3, i].Value = ds.Tables[0].Rows[0][3].ToString();
return;
}
}
}
}
举一反三
根据本实例,读者可以开发以下程序。
超市条形码扫描系统。
公司工具条形码扫描系统。
实例436 利用神龙卡制作练歌房程序
实例说明
在开发酒店、宾馆的点歌系统时,使用神龙DVD解压卡可以方便地进行媒体控制。神龙DVD解压卡(以下简称神龙卡)是一款专门针对中国大陆市场而开发出来的DVD硬解压卡,神龙卡与好莱坞卡的基本功能相近,两卡比较具有以下几个区别。
l 神龙卡可播放中国大陆全区码DVD碟,好莱坞卡可播放全球1~6区码影碟,可无数次解区码。
l 神龙卡支持1~5M码流播放,好莱坞卡可支持1~15M的视频流播放。
l 神龙卡支持全屏播放,好莱坞卡支持全屏及窗口(即可缩放窗口)播放。
l 神龙卡支持Win 9x下工作环境,好莱坞卡可支持Win 9x及WinNT下工作环境。
本例利用神龙卡实现了音乐的控制功能。运行程序,结果如图13.20所示。
图13.20 利用神龙卡制作练歌房程序
技术要点
本程序主要通过一个第三方NNSREALmagicCtrl.ocx控件实现。在.NET下使用第三方控件,首先,需要进行Windows注册,注册命令为“REgsvr32 路径/NNSREALmagicCtrl.ocx”;其次,将注册成功的控件添加到Microsoft Visual Studio 2005开发环境中,实现步骤为:选择菜单“工具”/“选择工具箱”,弹出“选择工具箱”窗口,在该窗口中选择“COM组件”选项卡,在列表中选择注册的第三方控件,单击【确定】按钮即可,如图13.21所示。
图13.21 添加第三方控件
实现过程
(1)新建一个项目,命名为Ex13_19,默认窗体为Form1。
(2)在Form1窗体中,主要添加DataGridView控件,用于选择播放影音;添加其他控件及用途如图13.20所示。
(3)主要程序代码。
private void button1_Click(object sender, EventArgs e)
{
if (strFileName == "")
{
MessageBox.Show("请在列表中选择播放文件!","系统提示");
return;
}
axREALmagicCtrl1.Filename = strFileName; //指定播放文件
axREALmagicCtrl1.Play(); //播放
}
private void btnPause_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.Pause(); //暂停播放
}
private void btnStop_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.Stop(); //停止播放
}
private void btnSpeed_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.CurrentFrame = axREALmagicCtrl1.CurrentFrame + 125; //快进
}
private void btnRecede_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.CurrentFrame = axREALmagicCtrl1.CurrentFrame - 125; //快退
}
private void rdoLeftTrack_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.AudioChannel = NNSREALmagicCtrl.TAudChannel.acLEFT; //左声道
}
private void rdoRightTrack_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.AudioChannel = NNSREALmagicCtrl.TAudChannel.acRIGHT; //右声道
}
private void rdoStereo_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.AudioChannel = NNSREALmagicCtrl.TAudChannel.acSTEREO; //立体声
}
private void tbVolume_Scroll(object sender, EventArgs e)
{
axREALmagicCtrl1.Volume = tbVolume.Value; //音量
}
private void rdoTV_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.DisplayDevice = NNSREALmagicCtrl.TDisDev.ddTV; //TV输出模式
}
private void rdoVGA_Click(object sender, EventArgs e)
{
axREALmagicCtrl1.DisplayDevice = NNSREALmagicCtrl.TDisDev.ddVGA; //VGA输出模式
}
private void Form1_Load(object sender, EventArgs e)
{
if (!axREALmagicCtrl1.OpenDriver()) //打开驱动
{
MessageBox.Show("打开驱动失败!!", "系统提示");
this.groupBox1.Enabled = false;
this.groupBox2.Enabled = false;
this.groupBox3.Enabled = false;
this.groupBox4.Enabled = false;
return;
}
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "DataBase.mdb" + ";Persist Security Info=False");
OleDbDataAdapter dap = new OleDbDataAdapter("select G_name as 影音名称,G_YC as 原唱,G_wjlx as 文件格式 from g_music_name", con);
DataSet ds = new DataSet();
dap.Fill(ds); //显示影音文件的相关属性
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{ //选择播放的影音
strFileName = @"/vod/" + dataGridView1[0, e.RowIndex].Value.ToString() + "." + dataGridView1[2, e.RowIndex].Value.ToString();
}
举一反三
根据本实例,读者可以开发以下程序。
练歌房卡拉OK系统。
单机卡拉OK系统。