c# 条形码扫描器

实例435 条形码扫描器销售商品
实例说明
文本框:
图13.19  利用条形码扫描器销售商品
如今,许多超市都利用条形码销售商品。微机操作员利用扫描器在商品的条形码处进行扫描,商品的详细信息就会显示在屏幕中。本例实现了利用条形码销售商品的功能。效果如图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系统。
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值