- 博客(992)
- 资源 (4)
- 收藏
- 关注

原创 (连载完结)EmguCV学习笔记 VB.Net和C# 下的OpenCv开发
由于涉及引用文件从NuGet下载,且配套的DLL文件也需要拷贝到Debug或者Release目录,此部分内容比较大,因此,本书的代码包含在同一个项目里面,对应每一章,在教程内会标明代码位置,特殊情况笔者会另外说明。为了方便讲解,教程中代码所用的配套文件均放在C盘learnEmgucv文件夹下,运行代码时,需要将笔者提供的配套文件拷贝到上述目录或修改代码对应配套文件的路径。由于本教程中已经包含了相关代码,配套代码文件和代码对应使用到的图片(文件)不再单独发布。还有EmguCV的帮助文档以及网上的众多资料。
2024-08-15 13:08:09
2919

原创 C# 教程 目录
17.3.2.1 Bitmap.LockBits方法和Bitmap.UnlockBits方法。17.3.2.9 像素处理与内存处理之比较。17.3.1.5 二值化(黑白)17.3.1.1 逆反(底片)17.3.1.6 自定义处理。17.3.2.8 自定义处理。17.3.2.7 二值化。17.3.1 像素处理。17.3.1.2 曝光。17.3.1.3 灰度。17.3.1.4 浮雕。17.3.2 内存处理。17.3.2.3 逆反。17.3.2.4 曝光。17.3.2.5 灰度。17.3.2.6 浮雕。
2024-02-16 12:00:37
1354

原创 开发实践教程1:试卷生成系统 1 前言和目录
虽然此前VB.Net教程中已经发布过《库存管理系统》作为VB.Net教程综合开发的实例,但是《库存管理系统》使用的是Access数据库,不适合多用户环境使用。同时,本系统的代码也为毕业生设计和答辩提供了开发参考,而且本程序也具备一定商用价值。(3)数据事务操作,详见《6.12 试卷管理(FormTestPaperManager)》。2、操作Word进行文档输出,详见《6.7 试卷生成(FormTestPaper)》。(2)数据批量保存,详见《6.7 试卷生成(FormTestPaper)》。
2023-03-11 21:23:03
296

原创 《Visual Basic.Net 循序渐进》
目前教程提供了学习章节共计569节,提供了示例502个,并在不断扩充中。这是博主自己总结了多年VB开发经验后,结合实际开发编著的教程。
2020-07-07 23:47:37
1943

原创 vb.net 教程 目录
最新更新:在 vb.net教程 中更新了:vb.net 教程 5-19 拓展:制作一个QQ大家来找茬和美女找茬辅助工具 (2019-11-25 16:29:53)vb.net 教程 5-20 拓展 论坛图片批量转换 (2019-11-25 16:19:31)vb.net 教程 5-21 拓展 如何给IE浏览器截图2019年11月25日 16:58:13更进一步的vb.net学习,欢迎.........
2017-04-07 23:03:24
65948
161
原创 C# 综合示例 库存管理系统21 关于(FormAbout)、 输入对话框(InputBox)、 总结
如前言所述,《库存管理系统》主要是为了弥补教程中缺少综合示例。由于设计时间较短,可能会有些遗漏或者Bug。可以在此基础上增加:1、操作日志:记录管理员、操作员对数据库操作时间和操作动作。2、对数据库增加密码。access2010中,请以独占方式打开数据库,在【文件】|【信息】,按下【用密码进行加密】对数据库增加密码。在程序代码中,64位程序使用以下连接语句:Data Source=数据库路径;jet oledb:database password=密码;
2025-05-05 00:27:04
1065
原创 C# 综合示例 库存管理系统20 操作员管理(FormAdmin)
command.CommandText = "insert into 操作员(ID,姓名,密码,是否停用) values(" + userid + ",'" + newUser + "','" + passMd5 + "','否')";command.CommandText = "update 操作员 set 姓名='" + userNameNew + "' where ID=" + UserID;"停用" : "启用";"是" : "否";MessageBox.Show("请先选择需要修改的操作员");
2025-05-05 00:26:35
1016
原创 C# 综合示例 库存管理系统19 密码修改(FormPass)
密码修改时,为防止不是本人操作,应对旧密码进行验证。验证成功后,用MD5加密新密码后保存。学习更多C#知识,请参看。原密码不正确,取消操作。
2025-05-03 00:30:00
1718
原创 C# 综合示例 库存管理系统18 快递公司管理(FormExpress)
不管是新增还是修改,都不用返回值,所以使用。循环读取每一行数据,直到。学习更多C#知识,请参看。未选择需要删除的数据。填充数据选项,主要是。
2025-05-03 00:15:00
1111
原创 C# 综合示例 库存管理系统17 供应商管理(FormSupplier)
存在的数据通常已经关联了很多其它表的数据,因此,一般不要轻易设置删除。不管是新增还是修改,都不用返回值,所以使用。不管是新增还是修改,都不用返回值,所以使用。该供应商已经存在,是否继续添加?中的项目,将数据添加到对应位置。循环读取每一行数据,直到。检查是否已经存在该供应商。供应商联系人姓名不能为空。供应商联系人职务不能为空。学习更多C#知识,请参看。供应商公司名称不能为空。供应商电话号码不能为空。填充数据选项,主要是。未选择需要修改的数据。未选择需要修改的数据。
2025-05-02 00:30:00
650
原创 C# 综合示例 库存管理系统16 出库单操作(FormStorageOutOrder)
由于出库单所包含的信息比入库单多得多,因此,代码难度主要在不遗漏项目。如果是修改,那么需要读取数据库中的数据再填充。如果是修改数据,那么填充所有控件中的数据。,需要在货物信息表(库存)中进行增删。号,也是判断新增还是修改的依据。修改出库清单中的物品时设置标记。是否新增标志,如果是,设置为。如果是新增,那么保持控件原状。省略了检查数据记录是否有效。调用之后添加任何初始化。循环读取每一行数据,直到。循环读取每一行数据,直到。循环读取每一行数据,直到。学习更多C#知识,请参看。填充数据选项,主要是。
2025-05-02 00:15:00
599
原创 C# 综合示例 库存管理系统15 出库单查询(FormStorageOutQuery)
循环读取每一行数据,直到。设置各个条件下的查询语句。学习更多C#知识,请参看。判断是否勾选了查询条件。操作人员姓名不能为空值。必须勾选一个查询条件。注意:查询条件在使用。
2025-05-01 00:30:00
1771
原创 C# 综合示例 库存管理系统14 出库管理(FormStorageOut)
同入库管理,仍然存在一个出库单对应多个出库物的情况,因此提供了两种显示方式。“出库单”按钮按下显示的是出库单信息,“出库货物”按钮按下显示的是出库货物信息。datagridview在显示出库单时,双击弹出出库单ID对应的出库单操作窗口;datagridview在显示出库货物信息时,双击转到显示该出库货物对应的出库单。在查询出库物品单时,才允许增改删。在查询出库物品单时,才允许增改删。根据记录总数得到总的页数,其中。表格时,双击转到查询对应的订单。在查询出库物品时,禁止增改删。不允许删除其它操作员的出库单。
2025-05-01 00:15:00
600
原创 C# 综合示例 库存管理系统13 入库单操作(FormStorageInOrder)
在代码中使用 Dictionary<int, int>保存旧、新入库单中货物ID和数量,再使用editGoodsCount()方法对数据进行组合。入库单中,如果修改了货物种类、数量,应该对前后货物情况进行组合,获得货物增删情况,并最终对应修改在货物信息表的库存量字段中的数据。原入库单中入库的三种货物的ID和数量: 1,10 2,203,30。修改后入库单中三种货物的ID和数量:2,253,204,15。组合后的货物ID和数量: 1,102,-53,104,-15。先进行组合,然后再修改货物信息表的库存量。
2025-04-30 00:30:00
1141
原创 C# 综合示例 库存管理系统12 入库单查询(FormStorageInQuery)
窗体中使用了DateTimePicker控件来设置日期时间,DateTimePicker的属性CustomFormat设置为:yyyy-MM-dd HH:mm:ss,同时Format属性必须设置为:Custom。"(入库单.订购日期 between #2000-11-01 0:00:00# and #2000-11-01023:59:59#)""(入库单.订购日期 between #2000-11-01 0:00:00# and #2000-11-0123:59:59#)"循环读取每一行数据,直到。
2025-04-30 00:15:00
965
原创 C# 综合示例 库存管理系统11 入库管理(FormStorageIn)
由于存在一个入库单对应多个入库物的情况,因此提供了两种显示方式。“入库单”按钮按下显示的是入库单信息,“入库货物”按钮按下显示的是入库货物信息。datagridview在显示入库单时,双击弹出入库单ID对应的入库单操作窗口;datagridview在显示入库货物信息时,双击转到显示该入库货物对应的入库单。先查询该入库单记录是否当前操作员保存。在查询入库物品单时,才允许增改删。表格时,双击转到查询对应的订单。在查询入库物品时,禁止增改删。不允许删除其它操作员的入库单。在查询入库单时,才允许增改删。
2025-04-29 00:30:00
1284
原创 C# 综合示例 库存管理系统10 库存货物操作(FormStorageInfoTable)
需要强调的是,严格控制用户输入,这样可以减少很多代码。例如库存量、采购价格、销售价格使用NumericUpDown控件,而不采用TextBox控件。如果是修改,那么需要读取数据库中的数据再填充。不管是新增还是修改,都不用返回值,所以使用。不管是新增还是修改,都不用返回值,所以使用。如果是修改数据,那么填充所有控件中的数据。号,也是判断新增还是修改的依据。如果是修改,初始不允许控件操作。是否新增标志,如果是,设置为。如果是新增,那么保持控件原状。如果是新建,则允许控件操作。循环读取每一行数据,直到。
2025-04-29 00:15:00
831
原创 C# 综合示例 库存管理系统9 库存查询(FormStorageInfoQuery)
另外,为了严格控制用户输入,通常情况下,需要将ComboBox的DropDownStyle属性设置为DropDownList。库存查询提供了5种方式的组合查询,每种方式查询语句应该符合库存信息(FormStorageInfo)代码中的sql语句。使用多个查询条件时,其间使用 And 组合。例如以下语句判断前一查询条件是否为空,如果不为空则使用 and 连接。需要注意的是:在Access中执行模糊查询,通配符使用*(星号),而在vb中,应该使用%(百分号)。循环读取每一行数据,直到。填充数据选项,主要是。
2025-04-28 06:30:00
1198
原创 C# 综合示例 库存管理系统8 库存信息(FormStorageInfo)
通常情况下,sql查询分为四个部分:select、from、where、order by,因此每一次sql查询,实际就是这四部分的组合,在本节代码以及后面几节代码中将频繁地使用以下四个变量(对不同的查询有不同变量名称),分别表示sql查询的四部分。另外,为了方便用户操作,提供了双击datagridview中某行,直接跳出对应货物ID号的库存货物操作(FormStorageInfoTable)窗口,代码中是dgv.MouseDoubleClick。先清除已经填入的表,否则会将数据追加到已有表。
2025-04-28 06:15:00
1369
原创 C# 综合示例 库存管理系统7 主界面(FormMain)
主界面是多文档界面容器,需要将窗体属性IsMdiContainer设置为True。关于多文档界面编程请参看教程第7.12节《多文档界面》。为了更好控制用户界面,FormMain窗体中showWindow()方法仅允许同一时间显示一个子窗体。主界面并不提供具体操作,只是一个显示其它窗口的容器,其工具栏上按钮打开对应功能的窗体。检查库存信息窗体是否打开。
2025-04-26 00:30:00
330
原创 C#综合示例 库存管理系统6 登录界面(FormLogin)
为了防止sql注入,采用的方法是,先检查账号是否存在,如果存在就返回对应的操作员姓名和密码。select 姓名,密码 from 操作员 where (id=账号ID) and (是否停用='否')关于数据库操作,请参看教程第19章《数据库操作》。通过返回的密码与用户输入的密码比较,再判断是否可以进入系统。在登录界面输入正确的账号和密码才能登录。其中账号ID是输入的账号。学习更多C#知识,请参看。
2025-04-26 00:15:00
1444
原创 C# 综合示例 库存管理系统5 ClassMd5类
为了方便使用,《库存管理系统》中建立了ClassMd5类,提供了共享方法 toMD5(),可以不用实例化ClassMd5类就可调用toMD5()方法来进行加密。由于《库存管理系统》为管理员和操作员设置了密码登录,因此对于密码需要一定的加密,本教程中使用的是MD5加密方式。学习更多C#知识,请参看。关于加密,请参看教程第。
2025-04-25 00:30:00
16
原创 C# 综合示例 库存管理系统3 窗体设计总览
主界面提供了库存信息、入库操作、出库操作等功能,由于本《库存管理系统》主要是针对“库存”,因此提供的操作与基本的入库出库有关,如果各位朋友需要更多功能,可以在此基础上扩展即可。出库单操作(FormStorageOutOrder):可在此窗口新增、修改出库单信息。入库单操作(FormStorageInOrder):可在此窗口新增、修改入库单信息。主要提供了库存信息查看、查询功能,同时管理员可以增加、修改、删除。主要提供了入库信息查看、查询、增加、修改、删除。主要提供了出库信息查看、查询、增加、修改、删除。
2025-04-24 00:30:00
254
原创 C# 综合示例 库存管理系统2 数据库架构
操作员表中同时保存了管理员的账号密码,管理员和操作员区别,主要是在《库存管理系统》中权限不同,也就是可以操作的内容不同,我会在后面窗体设计中做说明。同样,考虑到出库货物可能有多个,因此除了出库单表,还需要出库单明细表来保存出库单对应了哪些货物、货物的出库价格以及数量。保存货物入库时账单的编号、操作员、订购日期、入库日期,考虑到入库货物可能有多个,因此除了入库单表,还需要入库单明细表来保存入库单对应了哪些货物、货物的采购价格以及数量。入库单.入库单ID和入库单明细.入库单ID对应。保存货物类别的相关信息。
2025-04-24 00:15:00
756
原创 C#综合示例 库存管理系统1概览
C# 综合示例 库存管理系统21 关于(FormAbout)、 输入对话框(InputBox)、 总结。C# 综合示例 库存管理系统10 库存货物操作(FormStorageInfoTable)C# 综合示例 库存管理系统9 库存查询(FormStorageInfoQuery)C# 综合示例 库存管理系统8 库存信息(FormStorageInfo)C# 综合示例 库存管理系统14 出库管理(FormStorageOut)C# 综合示例 库存管理系统11 入库管理(FormStorageIn)
2025-04-23 00:30:00
306
原创 20.3 使用技巧10
虽然DataGridView中列可以设置为DataGridViewCheckBoxColumn,但是列表头是没有复选框的。可以将CheckBox控件放置在列表头位置,且当该复选框勾选/不勾选时,模拟实现全选/全不选。【项目:code20A-003】单元格点击使用日期选择控件。设置全选/全不选,同时设置单元格对应的背景色和前景色。设置勾选/不勾选时dgv中单元格颜色。增加数据、增加表头的选择框。复选框勾选/不勾选时的操作。获得单元格显示区域的矩形。学习更多C#知识,请参看。
2025-04-22 00:30:00
774
原创 20.3 使用技巧9
有时为了输入方便或者固定日期格式,可以考虑点击DataGridView中某个单元格时出现日期选择控件,避免用户手动输入和格式不一的麻烦。当日期选择控件下拉日历被关闭并消失时调用 dtpCloseUp 方法。【项目:code20A-002】单元格点击使用日期选择控件。当日期选择控件失去焦点时调用 dtpLostFocus 方法。再次判断选中的单元格是否在需要设置日期的列。当前点击的单元格的位置和大小。设置日期选择控件的位置和大小。设置单元格文本为选中的日期。设置日期选择控件不可见。日期选择控件设置焦点。
2025-04-22 00:15:00
1730
原创 20.3 使用技巧8
当使用DataGridView时会发现,这个控件并不像别的控件一样在【属性】窗口里可以设置BackgroundImage(背景图片)属性。虽然DataGridView继承自Control类,Control类有BackgroundImage属性,在代码中可以设置DataGridView的BackgroundImage属性,但是运行时并不会显示设置的背景图片。DataGridView,重写DataGridView的PaintBackground方法,同时还要增加一个方法使单元格透明。学习更多C#知识,请参看。
2025-04-21 00:30:00
982
原创 20.3 使用技巧7
在实际工作中,为了防止用户乱填写数据,开发者往往需要给出固定的几个值,用户只能在那几个值里面选择,在DataGridView中可以通过设置DataGridViewComboBoxCell来实现,但是一列的下拉框单元格,没有文本单元格视觉效果那么好,造成用户体验并不是很好。2、当点击某个单元格ComboBox显示出来后,点击其它不应显示ComboBox的单元格时,ComboBox仍然还在原单元格。3、当点击某个单元格ComboBox显示出来后,也可以输入数据,而不是期望的从ComboBox中的数据。
2025-04-21 00:15:00
1491
原创 20.3 使用技巧6
相信读者们很快会发现有这样一个问题:当下拉框更改了值,但是第一行数据不会立即改变,只有当下拉框所在单元格失去焦点后,第一列的值才和下拉框单元格的值一致。不知道读者有没有注意过,从下拉框单元格选择的时候,总共会点三下鼠标才能选中下拉框中的一个值:第一次选中单元格,第二次打开下拉框,第三次才能选中值。很简单的实现,使用DataGridView.CellValueChanged事件即可,该事件会在单元格的值更改时发生。以上代码将在新增的下拉框列的值发生改变后,将第1列对应行的单元格的值修改为和它相同。
2025-04-20 12:49:48
922
原创 20.3 使用技巧5
在上述例子中,通过列名称来处理对应的点击事件。还可以用过单元格类型来进行处理。当增加新按钮列或者超链接列后,按钮或者超链接,会发现,按钮或者超链接点击后没有反应。那么如果要点击某个按钮弹出一个对话框,或者点击某个超链接,弹出需要的网页,该如何实现呢?这就需要借助DataGridView.CellContentClick 事件,当单击单元格的内容时会触发该事件。代码判断了点击单元格的类型是否是DataGridViewButtonCell和DataGridViewLinkCell,如果是的话分别进行处理。
2025-04-20 12:49:32
999
原创 20.3 使用技巧4
它们都从System.Windows.Forms.DataGridViewColumn继承而来。通常情况下增加列的方法:首先定义一个实例化的 DataGridViewTextBoxColumn,然后使用DataGridView.Columns.Add方法将该实例加入到列最后,或者使用DataGridView.Columns.Insert方法 将该实例加入到指定索引位置。
2025-04-18 00:30:00
1307
原创 20.3 使用技巧3
DataGridViewCell下还有DataGridViewHeaderCell单元格类型,这是专门针对行表头单元格和列表头单元格的,不能将包含数据的单元格设置为此类型,否则会出错。在运行时更改单元格类型常用的方法是直接定义某个类型单元格,然后将DataGridView中的某个单元格设置为刚才定义的变量。除了前面所讲到的在运行时增加某种类型的列,偶尔也会出现某个单元格需要修改为某种类型。将单元格(1,4)设置为下拉框类型。将单元格(1,5)设置为超链接类型。将单元格(1,6)设置为按钮类型。
2025-04-18 00:15:00
1999
原创 20.3 使用技巧1
当DataGridView某个列的SortMode设置为DataGridViewColumnSortMode.Automatic时,不能将DataGridView的SelectionMode设置为ColumnHeaderSelect或者FullColumnSelect。索引必须为0至行数-1,如果是不存在的行,会引发错误:索引超出范围。【项目:code20-004】隐藏或显示行、列、表头。1、隐藏或显示某行:设置行的Visible属性。2、隐藏或显示某列:设置列的Visible属性。
2025-04-17 00:30:00
562
原创 20.3 使用技巧2
除了列表头和行表头外,还有一个比较特殊的单元格,即位于DataGridView左上角的标题单元格,直接设置DataGridView.TopLeftHeaderCell.Value即可。一是可以通过 DataGridView.Columns[列号].HeaderCell来获得对应列的单元格,再设置该单元格的Value属性。通过 DataGridView.Rows[列号].HeaderCell来获得对应列的单元格,再设置该单元格的Value属性。例如:将第1列的列表头从"ID"修改为 "序号"
2025-04-17 00:15:00
1090
原创 20.2 数据操作
可以用 DataGridView.SelectedCells(DataGridView.SelectedCells.Count-1) 获得选中单元格中最右下角的那个单元格,这是一个DataGridViewCell类对象。6、当你直接用第5条的内容去获得前景色、背景色的话,你会发现获得的颜色是Empty,而获得字体之类,会产生错误:未将对象引用设置到对象的实例。调整文本字体:DataGridViewCell.Style.Font.FontFamily.Name。二是修改单元格的样式。
2025-04-16 00:30:00
917
原创 20.1 DataGridView控件初步
在【DataGridView任务】菜单点击【添加列】,弹出【添加列】窗口,由于本节内容不涉及数据库,所以“数据绑定列”这一项不能选中。这里使用DataGridViewTextBoxColumn,更多列类型(ColumnType)请参看第20.3.6节。以下将演示如何在设计时添加列。学习更多C#知识,请参看。
2025-04-16 00:15:00
567
《自己做个国庆75周年头像生成器》代码
2024-09-30
深度神经网络下的风格迁移模型
2023-11-21
Excel VSTO开发相关代码
2023-09-06
Vb.Net 公司年会抽奖程序
2022-01-11
vbscript 备忘录
2017-09-19
sola染毒文件恢复工具
2009-02-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人