
vb.net 点滴
文章平均质量分 57
.Net学习
.net开发爱好者
展开
-
自己做个国庆75周年头像生成器
而不是直接使用 cbMask.SelectedIndexChanged 这个事件呢?准备四张透明png图片到程序目录下的Img目录,分别用1-4.png命名。又是一年国庆节,今年使用国旗做头像的朋友不少,律师也说了,不违法。简简单单的代码,我们不仅可以给自己做,也可以给朋友做头像了。很相似,本文也可以为C#爱好者提供参考。所以,做这个程序也没关系吧。由于.net平台下C#和vb。代码太简单,不一一讲解了。原创 2024-09-30 22:09:20 · 570 阅读 · 1 评论 -
利用内存映射文件进行程序间通信1一概念
在系统内存中创建一个具有指定容量的内存映射文件。使用此方法创建一个不持久保留的内存映射文件 (即,不与关联磁盘上的文件),可以用于进程之间共享数据。System.IO.MemoryMappedFiles 命名空间提供用于使用内存映射文件的类,该文件将文件内容映射到应用程序的逻辑地址空间。向访问器写入一个相应的值,第一个参数是要写入的位置,第二个参数可以是布尔值、字节值、字符等。表示内存映射文件,它将文件的内容映射到应用程序的逻辑地址空间。在系统内存中创建或打开一个具有指定容量的内存映射文件。原创 2023-07-19 12:01:12 · 590 阅读 · 0 评论 -
二维数组转为一维数组
二维数组转为一维数组。原创 2023-04-10 21:30:17 · 1049 阅读 · 3 评论 -
鼠标指针操作
可以直接使用Dim cur As New Cursor(bmp.GetHicon),这里为了演示光标的HotSpot(光标作用点),所以做了些变化,从图中可以看到,光标的作用点,并不是在红色方框的位置,跟踪HotSpot属性可以得知,这个点的坐标(32,32),图片大小为64*64,所以光标作用点是在图片中心位置。HotSpot(光标作用点)是按下鼠标时,光标图片在屏幕上实际“点击”的位置,使用默认箭头状鼠标时,光标作用点在箭头尖上,即光标图片左上角。成员xHotspot:光标在横坐标上的作用点坐标。原创 2022-10-24 20:20:20 · 1848 阅读 · 0 评论 -
枚举进程加载模块
在教程 vb.net 教程 6-3 进程加载的模块 中详细讲解了使用 Process类的modules属性,该属性可以获取进程加载的所有Dll文件,详细使用可以参看上述博文。但是在实际使用中存在一个问题:对于有些程序,不能获得其进程全部的加载模块。例如,获得QQExternal的加载模块,如果使用.Net只能获得5个dll。但是通过其它工具,可以看到实际包含了很多dll:通过调用系统api可以很好地解决这个问题。.........原创 2022-07-12 21:33:51 · 1078 阅读 · 0 评论 -
PtrToStructure 错误提示:此结构不得为值类,解决办法
当使用Marshal.PtrToStructure方法时发生错误,提示:此结构不得为值类此时如果代码没问题,需要将Structure(结构)重新定义为Class(类)可解决。记录于此,以免遗忘。2022.5.29原创 2022-05-29 19:49:16 · 881 阅读 · 1 评论 -
绑定数据实现格式化输出
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。普通绑定的代码: Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim bd As New Binding("text", TextBox1, "text") Label1.DataBindings.Add(bd) End Sub当文本框内输原创 2022-05-10 17:13:58 · 345 阅读 · 0 评论 -
模拟浏览器访问页面,实现tabpage关闭按钮
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。网友问题:实现类似于浏览器的界面。主要难点:1、tabcontrol上的选项卡本身是没有关闭按钮的,需要在tabpage上绘制关闭按钮2、使用webbrowser访问网页,当需要新窗口的时候,新建一个tabpage,并在上面放置一个新的webbrowser控件,打开新窗口的网址。具体代码如下,其中包含了部分说明:Imports System.ComponentModelPubl原创 2022-05-03 22:21:02 · 1810 阅读 · 0 评论 -
VB.Net 使用图片做菜单项
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。在使用Menu时候,对于菜单项(ToolStripItem)可以使用Image属性来设置在菜单项前面的图片,但是却不能使整个菜单项显示图片。其实通过ToolStripItem的Paint (重绘)可以实现。设计时窗体,其中菜单项1使用了Image属性:代码如下: Dim bmp As Bitmap Private Sub Form1_Load(sender As Obje.原创 2022-04-19 21:17:21 · 807 阅读 · 0 评论 -
vb.net 全局键盘钩子
应网友邀请写的代码。模块部分的代码:Imports System.Runtime.InteropServicesModule Keyboard <DllImport("User32.dll", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> Public Function SetWindowsHookEx(ByVal idHook As Integer, ByVal Hoo原创 2022-03-01 20:19:02 · 896 阅读 · 0 评论 -
隐藏、显示窗口
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。使用系统的API函数ShowWindow可以隐藏和显示其它程序的窗口。vb.net中的声明如下:Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As IntPtr, ByVal nCmdShow As Integer) As Integer参数hwnd是窗口的句柄;参数nCmdShow是指定窗口原创 2021-11-04 22:47:08 · 2725 阅读 · 0 评论 -
数组和集合的初始及赋值
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。VB.Net中数组和集合初始化以及赋值的常见代码如下: '数组 '1 Dim a1() As Integer = {1, 2, 3, 4, 5} '2 Dim a2 As Integer() = {1, 2, 3, 4, 5} '3 Dim a3() As Integer = New Int原创 2021-10-24 11:42:45 · 3356 阅读 · 0 评论 -
datagridview 表头添加全选/全不选 选择框
实现 datagridview 表头添加全选/全不选 选择框,而且当勾选改行复选框后选中该行,实现选中多行。1、由于虽然列可以设置为DataGridViewCheckBoxColumn,但是表头是没有checkbox的。那么可以将checkbox控件放置在表头位置。2、由于点击某行后选中该行,会导致其它行不被选中。那么可以通过修改背景色和前景色来模拟选中。实现效果:具体代码如下:定义窗体级变量: Dim chk As CheckBox添加测试数据的代码: Pri原创 2021-07-11 20:17:32 · 5159 阅读 · 2 评论 -
侧面导航栏以及如何添加子窗体
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。今天有网友咨询如何设计主窗体,使它左侧显示按钮导航,右侧显示子窗体。后来想了一下还是挺简单的:窗体设计:form1(主窗体)其它子窗体(这里主要演示,只设计了2个子窗体)form2:form3:form2和form3的formborderstyle属性设置为none。在Form1中的代码如下: Dim loc As Point Dim cur原创 2021-06-22 23:27:05 · 1011 阅读 · 2 评论 -
实现自定义背景色、前景色、显示进度的进度条
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。默认情况下,VB.Net自带的进度条都是固定颜色的。即使设置前景色、背景色也没用,另外,自带进度条也不显示当前进度数值。实际使用时,如果有特殊需求,使用默认进度条,显然效果不太好。本篇文章建立一个ProgressBar的继承类NewProgressBar,从而实现自定义背景色、前景色、显示进度的进度条。最终实现效果:NewProgressBar的代码:Public Class NewP原创 2021-06-13 11:24:35 · 1569 阅读 · 0 评论 -
实现 ComboBox下拉显示表格
实现效果如下:当点击combobox箭头后显示一个Datagridview表格。一个网友提出来的问题,根据网上的代码修改。首先实现comboDataGridView类,具体代码如下:Public Class comboDataGridView Inherits ComboBox Private Const WM_LBUTTONDOWN = &H201 Private Const WM_LBUTTONDBLCLK = &H203 Dim tscH原创 2021-06-11 22:43:27 · 2291 阅读 · 0 评论 -
IIQ文件内gps信息的分析
近日有网友咨询,使用《vb.net 教程 5-7 Bitmap类 3 获得图片信息Exif 1》教程的代码可以打开IIQ文件,但是近期的IIQ图片却分析不了了。网友还传了两张IIQ图片给我,使用系统(win10)自带的“照片”分别打开这两个文件,确实也是,一张能够看到gps信息,一张却看不到。推测是IIQ文件结构有所变化。网上找了一大圈,都没有IIQ文件相关资料,只获得了一些介绍性的信息。我也根据网上的指引,下载了METADATAEXRACTOR组件生成程序进行分析,也不能获得gps相关信息。最后原创 2021-05-23 15:44:39 · 1042 阅读 · 0 评论 -
转ASCII图
由于某些原因,很久没有写点什么。这里把以前写的图片转ASII的代码放出。 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim opf As New OpenFileDialog() opf.Filter = "图片文件|*.jpg;*.png" opf.Multiselect = False If opf.S原创 2021-05-18 23:25:41 · 309 阅读 · 0 评论 -
用vb.net制作贪吃蛇游戏 续 实现图形双缓冲
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。在《用vb.net制作贪吃蛇游戏》中有个小的问题,就是如果没有网格线会导致看不出移动的位置。所以在这篇文章中将讨论如何添加上网格线,并且使用双缓冲来减少出现画面切换造成的闪烁。添加上网格线的代码如下: 绘制网格线的代码: Private Sub drawGrid(ByVal g As Graphics) Dim bmp As New Bitmap(picBac...原创 2021-01-04 14:28:44 · 781 阅读 · 0 评论 -
vb.net 高精度定时器 1ms级
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。为了测试计时器运行,我换了一台计算机。但是这次测试的结果却差强人意,测试了2次,手机秒表时间和程序计次:1'00.35 38571'00.35 3834前面明明好好的计时器,在另外一台电脑上却不行了。原电脑是很久的一台电脑,win7系统,这台电脑是前两年配的,win10系统。推测,这台电脑与之前的电脑时间片上有差异。设置1ms的间隔,实际在这台电脑对应差不多15ms。这次为...原创 2020-12-16 23:30:53 · 1631 阅读 · 2 评论 -
vb.net 高精度定时器
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。在vb.net下常用的计时器非组件中的Timer莫属,但是实际应用的时候大家会发现一个比较大的问题,精度不够。我写了个代码来测试timer的精度,间隔时间设置为1毫秒,具体代码如下: Dim counter1 As Integer Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.原创 2020-12-16 23:21:03 · 1829 阅读 · 0 评论 -
vb.net 生成条码 (code39)
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。欢迎大家捧场:《Visual Basic.Net 循序渐进》由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供的参考。学习更多vb.net知识,请参看vb.net 教程 目录这是很早以前写的代码了,今天有网友需要,我就发到这里,可能有更多的人需要。模块中的代码:Module Module1 ''' <summary> ''' 扫描线设.原创 2020-12-06 23:45:27 · 1545 阅读 · 0 评论 -
桌面人偶
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。本篇博文主要讲述如何用VB.Net实现桌面人偶程序。一、准备工作1.1、人偶图片的准备本文中将使用到两张人物行走的png图片,均来源于网络。图1、男性图片图2、女性图片图片大小为280*992,实际包含32张人物行走动作的图片,从上到下分别为:向下行走、向左行走、向右行走、向上行走、左下行走、右下行走、左上行走、右上行走共8个方向的行走动作图。根据图片内容可以均分为4*8原创 2020-10-24 15:13:36 · 881 阅读 · 1 评论 -
桌面时钟
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。在本篇博文中将向读者展现如何实现一个如下图所示的背景透明的桌面时钟 。1、窗体和控件窗体高度和宽度都为200 ,TopMost=True;FormBorderStyle=None放置的控件:picClock:Picturebox控件,Dock=Fill。ContextMenuStrip1:ContextMenuStrip组件,菜单项分别为:图片一、图片二、图片三、退出。tmClock原创 2020-10-21 21:05:33 · 1376 阅读 · 0 评论 -
错误:未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序
今天有朋友咨询学习教程里面数据库一章时,当程序运行到 conn.Open 这个位置时产生错误:未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 提供程序。使用的的连接语句:conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=D:\lessons\Northwind1.mdb;"刚看到这个错误,我也比较奇怪,因为教程代码都是在我计算机上都是测试通过的。首先问到的情况是,朋友计算机原创 2020-10-09 22:42:53 · 3241 阅读 · 0 评论 -
用vb.net制作贪吃蛇游戏
贪吃蛇游戏相信很多朋友都听说或者玩过,特别是以前使用过诺基亚手机的朋友,这在当时就是诺基亚手机的专配游戏。本篇文章讲述如何在vb.net中编写此游戏代码。一种方法是可以使用控件数组,在用户界面上使用如多个图片框构成整个背景,将相关图片框设置为蛇身来绘制出整条蛇。这种方法比较简单,处理速度也快。另外一种方法是通过GDI+在用户界面上绘制此游戏,本文将采用此方法,一、需要解决的问题1、绘制蛇身。2、蛇的移动3、产生食物4、当吃到食物(与食物发生碰撞时),使蛇增加一段长度。5、当碰到边界或者自原创 2020-07-09 22:04:24 · 3405 阅读 · 44 评论 -
使用VB.Net+word组件提取数据
由于教程终于算是进入尾声了,我决定将教程中所有的例子做个列表,供展示使用。由于写此教程时采用了比较规范的命名方式,所以凡是出现示例的地方都类似于以下语句:需要做的工作:1、提取每一段数据,分析是否是示例。2、如果是示例标题,那么提取后,将【项目】内容除去,只保留示例编号和示例名称。例如,原来的内容:【例 21.8】【项目:code21-008】Word基本信息。获得的内容:【例 21.8】Word基本信息。一开始我以为手动复制粘贴很快可以达到目的,当操作到第10个示例时,我发现自己原创 2020-06-30 23:06:21 · 971 阅读 · 0 评论 -
设置ToolStripProgressBar显示前景色和背景色
当进行开发的时候,不知道大家有没有注意到,不论是ToolStripProgressBar还是普通的ProgressBar,设置forecolor和backcolor其实是无效的。程序在运行的时候,仍然显示的是绿色的进度条和灰色的背景色。其实,如果想简单解决这个问题可以设置不要启用Xp视觉样式。MSDN上有明确说明: 在 Windows XP Home Edition、Windows XP Professional、Windows Server 2003 以及更高版本上启用视觉样式时,对 Pro原创 2020-06-04 22:14:22 · 1544 阅读 · 0 评论 -
VB.Net 16行代码完成多个excel合并
本篇文章是昨日《VB.Net多少行代码完成多个excel合并》的续篇。昨天在测试的时候感觉代码合并excel太慢了,今天早上醒来的时候又再思考了一下。因为大多数情况下,需要合并的excel文件有着相同列数,那么使用range方法就是可行的。于是立即打开电脑进行测试了思考的代码,并与昨天的代码运行时间进行了比较。昨天的代码增加了检查简单运行时间(已经在Public Class Form1代码前加上了Imports Microsoft.Office.Interop): Dim maxc..原创 2020-05-30 08:02:06 · 1320 阅读 · 0 评论 -
VB.Net多少行代码完成多个excel合并
因为还没有做过Excel合并这样的项目,我也比较好奇,如果使用VB.Net,那么需要多少行代码。于是有了以下代码(请自行添加对Excel 的Com引用):Imports Microsoft.Office.InteropPublic Class Form1 Dim maxcount As Integer = 0 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click原创 2020-05-29 17:21:32 · 440 阅读 · 2 评论 -
VB.Net 一行代码生成验证码图片
好吧,一行代码确实办不到,如果从头开始完成代码的话。今天优快云 app 上推荐了一篇文章,标题大概是使用python四行代码生成验证码图片。当下很好奇,于是进去看了看。原来这篇文章上介绍的是使用了别人已经生成的库来生成验证码图片。其实,使用别人的库也没有什么不好,站在巨人的肩膀上,可以提升开发效率。但是没必要弄个博眼球的标题。但是这个也让我想试一试如果使用VB.Net来写,应该怎么写,其实还是挺简单,按照设想,设计了一个ClsVerCode类用来被调用生成验证码图片。我把代码发在下面,里面已经添原创 2020-05-24 16:45:13 · 684 阅读 · 0 评论 -
.Net中处理Bitmap类像素大小
MSDN上并没有告诉我们使用Bitmap的构造函数Bitmap(Int32, Int32) --用指定的大小初始化 Bitmap 类的新实例。时的长宽最大多少。在国内网站,能够查出来的资料都是说按照Int32的最大值,因为参数的确是Int32,但是要知道,这个大小是2,147,483,647。如果按照Int32的最大值来初始化Bitmap,必定会出错。在国外网站上终于找到了答案:按照32位程序调试或编译:不超过1GB按照64位程序调试或编译:不超过2GB那么按照Imaging.Pixe..原创 2020-05-19 22:41:31 · 1553 阅读 · 5 评论 -
datagridview中使最新增加的一行样式不一样 兼谈网友 skypaf 的问题
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。网友skypaf 的原问题发表在csdn的bbs上:http://bbs.youkuaiyun.com/topics/392271272我个人的理解是他想让新增的一行与原来的行样式不一致。那么如何在datagridview中完成呢?说实在的以往写代码的时候还真没有这么考虑过这样的问题,先说看...原创 2017-10-06 20:06:01 · 802 阅读 · 2 评论 -
vs2015 64位系统下使用mdb数据库问题
64位win10下,在vb.net2015中使用oledb调取mdb数据库中的数据,建立OleDbConnection连接时候,使用Provider=Microsoft.Jet.OLEDB.4.0会提示网上的做法是换为Provider=Microsoft.Jet.OLEDB.10.0但是仍然提示错误:信息提示为缺少数据驱动提供导致。经查看本机odbc可以看到32原创 2017-10-05 22:53:26 · 2226 阅读 · 6 评论 -
检查可执行文件是否有签名
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。检查可执行文件是否有签名网上大多数是C++或者C#的,做成了vb.net的。设计窗体上增加一个按钮控件,具体代码:Imports System.Runtime.InteropServicesPublic Class Form1 Private Declare ...原创 2018-04-08 20:01:23 · 1685 阅读 · 0 评论 -
vb.net 发牌程序 2
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。接上一篇文章,发牌程序的代码:Imports System.DrawingPublic Class Form1 Structure Poker Dim ID As Integer Dim Name As String End Str...原创 2017-09-24 20:30:33 · 659 阅读 · 0 评论 -
vb.net 发牌程序 1
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。这两天想了个发牌的程序。3个人的扑克牌,54张牌含大小王,每个人18张;如果4个人,则52张牌不含大小王,每个人13张牌。程序的关键是随机牌面,而且不能发已经发了的牌:我这里采用的方法是:从队列牌中随机抽取一张牌,然后从队列中删除这张牌,继续从队列中随机抽取一张牌,继续...原创 2017-09-24 20:20:05 · 756 阅读 · 0 评论 -
Excel做图像
今天突然想到以前看到有人使用excel做图像,于是也做了一个。就是转换速度……真的是太慢了。原创 2017-04-16 21:20:36 · 657 阅读 · 4 评论 -
禁止调整ListView 列宽
在listview.ColumnWidthChanging事件中加入代码: e.Cancel = True ‘取消e.NewWidth= listview.Columns(e.ColumnIndex).Width ’设置现在新的宽度与调整前宽度一样原创 2017-03-05 22:02:18 · 3415 阅读 · 0 评论 -
vb.net webbrowser 网页调用winform 中的函数
首先winform中设置 _Public Class Form1 formload中设置webbrowser.ObjectForScripting = Me 调用的函数要是 public Public Sub add(ByVal numAs String) 网页中window.external.add(num)原创 2013-06-06 16:21:35 · 1097 阅读 · 0 评论