精华内容
下载资源
问答
  • 摘要:VB源码,系统相关,多线程,异步执行 VB线程异步执行的实例源代码,源码还是半成品,IDE里直接崩,EXE正常,但不清楚其他人的机子怎么样,源码演示的是线程负责显示时间,并检查文本框输入,找到“zzz”字符就...
  • Private Declare Function SendMessage Lib "user32" Alias ... WM_GETTEXT, 255, GetString) '255是缓冲区的长度 'GetKeyNameText GetIParam, GetString, Len(GetString) MsgBox(GetString) End Sub 取消 评论

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer

    'Private Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long

    Private Const WM_GETTEXT As Integer = &HD

    Private Const WM_GETTEXTLENGTH As Integer = &HE

    'Dim a As Long

    Dim GetIParam As Integer

    Dim GetString As String

    Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click

    GetString = Space(255)

    'a = SendMessage(CLng(Text1.Text), WM_GETTEXTLENGTH, 0, 0)

    Text1.Text = Command1.Handle.ToInt32

    SendMessage(CInt(Text1.Text), WM_GETTEXT, 255, GetString) '255是缓冲区的长度

    'GetKeyNameText GetIParam, GetString, Len(GetString)

    MsgBox(GetString)

    End Sub

    取消

    评论

    展开全文
  • VB 精典适用源代码

    2021-04-28 01:50:35
    查找方法:按ctrl+f,输入要查找的问题关键字即可每...////////////////////////////////////////////////////////////////////////////////////如何用VB建立快捷方式Private Declare FunctionfCreateShellLinkLib"...

    查找方法:按ctrl+f,输入要查找的问题关键字即可

    每个问题中间用///分隔,这只是一部分最常见到的问题,以后会逐渐更新。

    如何用VB建立快捷方式

    Private Declare FunctionfCreateShellLinkLib"STKIT432.DLL"(ByVallpstrFolderNameAs String,ByVallpstrLinkNameAs String,ByVallpstrLinkPathAs String,ByVallpstrLinkArgsAs String)As Long

    SubCommand1_Click()DimlReturnAs Long'添加到桌面lReturn = fCreateShellLink("..\..\Desktop","Shortcut to Calculator","c:\windows\calc.exe","")'添加到程序组lReturn = fCreateShellLink("","Shortcut to Calculator","c:\windows\calc.exe","")'添加到启动组lReturn = fCreateShellLink("\Startup","Shortcut to Calculator","c:\windows\calc.exe","")End Sub

    如何让程序在 Windows 启动时自动执行?

    有以下二个方法:

    方法1: 直接将快捷方式放到启动群组中。

    方法2:

    在注册档 HKEY_LOCAL_MACHINE 中找到以下机码

    \Software\Microsoft\Windows\CurrentVersion\Run

    新增一个字串值,包括二个部份1.名称部份:自己取名,可设定为 AP 名称。2.资料部份:则是包含'全路径档案名称' 及 '执行参数'例如:

    Value Name = Notepad

    Value Data = c:\windows\notepad.exe

    在 TextBox 中如何限制只能输入数字?

    参考下列程序:SubText1_KeyPress(KeyAsciiAs Integer)IfKeyAscii <48orKeyAscii >57ThenKeyAscii =0End If

    End Sub

    我希望 TextBox 中能不接受某些特定字符,例如'@#$%",有没有简单一点的写法?方法有好几种, 以下列举二种:

    方法1: 可以使用IF或Select Case一个个判断, 但如果不接受的字符多时, 较麻烦!

    方法2: 将要剔除的字符统统放在一个字串中,只要一个IF判断即可 !! 如下:Private SubText1_KeyPress(KeyAsciiAs Integer)DimsTemplateAs StringsTemplate ="!@#$%^&*()_+-="'用来存放不接受的字符IfInStr(1, sTemplate, Chr(KeyAscii)) >0ThenKeyAscii =0End If

    End Sub

    如何让鼠标进入 TextBox 时自动选定 TextBox 中之整串文字?

    这个自动选定反白整串文字的动作,会使得输入的资料完全取代之前在 TextBox 中的所有字符。Private SubText1_GotFocus()

    Text1.SelStart =0Text1.SelLength = Len(Text1)End Sub

    如何检查软盘驱动器里是否有软盘?

    使用:DimFlagAs BooleanFlag = Fun_FloppyDrive("A:")IfFlag =False ThenMsgBox"A:驱没有准备好,请将磁盘插入驱动器!", vbCritical'-------------------------------

    '函数:检查软驱中是否有盘的存在

    '-------------------------------Private FunctionFun_FloppyDrive(sDriveAs String)As Boolean

    On Error Resume NextFun_FloppyDrive = Dir(sDrive) <>""End Function

    如何弹出和关闭光驱托盘?OptionExplicitPrivate Declare FunctionmciSendStringLib"winmm.dll"Alias"mciSendStringA"(ByVallpstrCommandAs String,ByVallpstrReturnStringAs String,ByValuReturnLengthAs Long,ByValhwndCallbackAs Long)As Long

    Private SubCommand1_Click()

    mciExecute"set cdaudio door open"'弹出光驱Label2.Caption ="弹 出"End Sub

    Private SubCommand2_Click()

    Label2.Caption ="关 闭"mciExecute"set cdaudio door closed"'合上光驱UnloadMe

    End

    End Sub

    如何让你的程序在任务列表隐藏Private Declare FunctionRegisterServiceProcessLib"kernel32"(ByValProcessIDAs Long,ByValServiceFlagsAs Long)As Long

    Private Declare FunctionGetCurrentProcessIdLib"kernel32"()As Long'请你试试 Ctrl+Alt+Del 是不是你的程序隐藏了Private SubCommand1_Click()

    i = RegisterServiceProcess(GetCurrentProcessId,1)End Sub

    如何用程序控制滑鼠游标 (Mouse Cursor) 到指定位置?

    以下这个例子,当 User 在 Text1 中按下'Enter' 键后,滑鼠游标会自动移到 Command2 按钮上方请在声明区中加入以下声明:'16 位版本: ( Sub 无传回值 )Declare SubSetCursorPosLib"User"(ByValXAs Integer,ByValYAs Integer)'32 位版本: ( Function 有传回值,Integer 改成 Long )Declare FunctionSetCursorPosLib"user32"(ByValxAs Long,ByValyAs Long)As Long'在 Form1 中加入以下程序码:Private SubText1_KeyPress(KeyAsciiAs Integer)IfKeyAscii =13Thenx% = (Form1.Left + Command2.Left + Command2.Width /2+60) / Screen.TwipsPerPixelX

    y% = (Form1.Top + Command2.Top + Command2.Height /2+360) / Screen.TwipsPerPixelY

    SetCursorPos x%, y%End If

    End Sub

    如何用鼠标移动没有标题的 Form,或移动 Form 中的控制项?

    在声明区中放入以下声明:'16 位版本: ( Sub 无返回值 )Private Declare SubReleaseCaptureLib"User"()Private Declare SubSendMessageLib"User"(ByValhwndAs Integer,ByValwMsgAs Integer,ByValwParamAs Integer, lParamAs Long)'32 位版本: ( Function 有返回值,Integer 改成 Long )Private Declare FunctionReleaseCaptureLib"user32"()As Long

    Private Declare FunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAs Long,ByValwMsgAs Long,ByValwParamAs Long, lParamAsAny)As Long'共用常数:ConstWM_SYSCOMMAND =&H112ConstSC_MOVE =&HF012'若要移动 Form,程序码如下:Private SubForm_MouseDown(ButtonAs Integer, ShiftAs Integer, XAs Single, YAs Single)DimiAs Longi = ReleaseCapture

    i = SendMessage(Form1.hwnd, WM_SYSCOMMAND, SC_MOVE,0)End Sub'以上功能也适用于用鼠标在 Form 中移动控制项,程序码如下:Private SubCommand1_MouseDown(ButtonAs Integer, ShiftAs Integer, XAs Single, YAs Single)DimiAs Longi = ReleaseCapture

    i = SendMessage(Command1.hwnd, WM_SYSCOMMAND, SC_MOVE,0)End Sub

    检查文件是否存在?FunctionFileExists(filenameAs String)As Integer

    DimiAs Integer

    On Error Resume Nexti = Len(Dir$(filename))IfErrori =0ThenFileExists =False ElseFileExists =True

    End Function

    如何设置对VB数据库连接的动态路径

    我个人因为经常作一些数据库方面的程序,对于程序间如何与数据库进行接口的问题之烦是深有体会,因为VB在数据库链接的时候,一般是静态,即数据库存放的路径是固定的,如用VB的DATA,adodc,DataEnvironment 等到作数据库链接时,如果存放数据库的路径被改变的话,就会找不到路经,真是一个特别烦的事。

    笔者的解决方法是利用app.path 来解决这个问题。

    一、用data控件进行数据库链接,可以这样:

    在form_load()过程中放入:privateform_load()DimstrAs String'定义str = App.PathIfRight(str,1) <>"\"Thenstr = str +"\"End Ifdata1.databasename=str &"\数据库名"data1.recordsource="数据表名"data1.refreshsub end这几句话的意为,打开当前程序运行的目录下的数据库。

    你只要保证你的数据库在你程序所在的目录之下就行了。

    二、利用adodc(ADO Data Control)进行数据库链接:privateform_load ()DimstrAs String'定义str = App.PathIfRight(str,1) <>"\"Thenstr = str +"\"End Ifstr ="Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source="& str &"\tsl.mdb"Adodc1.ConnectionString = str

    Adodc1.CommandType = adCmdText

    Adodc1.RecordSource ="select * from table3"Adodc1.Refreshend sub三、利用DataEnvironment进行数据库链接

    可在过程中放入:On Error Resume Next

    IfDataEnvironment1.rsCommand1.State <> adStateClosedThenDataEnvironment1.rsCommand1.Close'如果打开,则关闭End If'i = InputBox("请输入友人编号:", "输入")

    'If i = "" Then Exit SubDataEnvironment1.Connection1.Open App.Path &"\userdatabase\tsl.mdb"DataEnvironment1.rsCommand1.Open"select * from table3 where 编号='"& i &"'"'Set DataReport2.DataSource = DataEnvironment1

    'DataReport2.DataMember = "command1"

    'DataReport2.showend sub四、利用ADO(ActiveX Data Objects)进行编程:

    建立连接:dimconnas newadodb.connectiondimrsas newadodb.recordsetdimstr

    str = App.PathIfRight(str,1) <>"\"Thenstr = str +"\"End Ifstr ="Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source="& str &"\tsl.mdb"conn.open str

    rs.cursorlocation=aduseclient

    rs.open"数据表名",conn,adopenkeyset.adlockpessimistic

    用完之后关闭数据库:

    conn.closesetconn=nothing

    如何让用户自行输入方程式,并计算其结果?

    假设我们要让使用者在“方程式”栏位中自由输入方程式,然后利用方程式进行计算,则引用ScriptControl控件可以很方便地做到。

    ( ScriptControl 控件附属于VB6.0,如果安装后没有看到此一控件,可在光盘的 \Common\Tools\VB\Script 目录底下找此一控件, 其.文件名为Msscript.ocx。) 假设放在窗体上的ScriptControl控件名称为ScriptControl1,则在“计算”按钮的Click事件中编写如下代码:DimStatementAs StringStatement ="X="+ Text1.Text + vbCrLf + _"Y="+ Text2.Text + vbCrLf + _"MsgBox ""计算结果="" & Y "ScriptControl1.ExecuteStatement( Statement

    如何让一个 App 永远保持在最上层 ( AlwaysonTop )

    请在声明区中加入以下声明Private Declare FunctionSetWindowPosLib"user32"(ByValhwndAs Long,ByValhWndInsertAfterAs Long,ByValxAs Long,ByValyAs Long,ByValcxAs Long,ByValcyAs Long,ByValwFlagsAs Long)As Long

    ConstSWP_NOMOVE =&H2'不更动目前视窗位置ConstSWP_NOSIZE =&H1'不更动目前视窗大小ConstHWND_TOPMOST = -1'设定为最上层ConstHWND_NOTOPMOST = -2'取消最上层设定ConstFLAGS = SWP_NOMOVEorSWP_NOSIZE'将 APP 视窗设定成永远保持在最上层SetWindowPos Me.hwnd, HWND_TOPMOST,0,0,0,0, FLAGS'取消最上层设定SetWindowPos Me.hwnd, HWND_NOTOPMOST,0,0,0,0, FLAGS

    我要如何在程序中开启网页?

    在声明区中声明如下 (在 .bas 档中用Public, 在 Form 中用Private)Private Declare FunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhWndAs Long,ByVallpOperationAs String,ByVallpFileAs String,ByVallpParametersAs String,ByVallpDirectoryAs String,ByValnShowCmdAs Long)As Long在程序中

    Intranet:

    ShellExecute Me.hWnd,"open","http://Intranet主机/目录","","",5Internet:

    ShellExecute Me.hWnd,"open","http://www.ruentex.com.tw","","",5

    VB可以产生四角形以外其他形状的 Form 吗?

    这个问题,您一定无法想像有多容易,您可以产生任何形状的 Form,但必须借助 CreateEllipticRgn 及 SetWindowRgn 二个 API ,例如:Private Declare FunctionCreateEllipticRgnLib"gdi32"(ByValX1As Long,ByValY1As Long,ByValX2As Long,ByValY2As Long)As Long

    Private Declare FunctionSetWindowRgnLib"user32"(ByValhWndAs Long,ByValhRgnAs Long,ByValbRedrawAs Boolean)As Long

    Private SubForm_Load()DimlReturnAs LongMe.Show

    lReturn = SetWindowRgn(hWnd, CreateEllipticRgn(10,10,340,150),True)End Sub执行结果图片

    CreateEllipticRgn 之四个参数说明如下:

    X1:椭圆中心点之X轴位置,但以 Form 的实№边界为限。

    Y1:椭圆中心点之Y轴位置,但以 Form 的实№边界为限。

    X2:椭圆长边的长度

    Y2:椭圆短边的长度的

    如何移除 Form 右上方之『X』按钮?

    其实 Form 右上方之三个按钮分别对应到 Form 左上方控制盒 (ControlBox) 中的几个选项 (缩到最小 / 放到最大 / 关闭),而其中的最大化 (MaxButton) 及最小化 (Minbutton) 都可以直接在 Form 的属性中设定,但是 VB 并没有提供设定『X』按钮的功能!要达到这个功能,必须借助 API:

    由于『X』按钮对应到 ControlBox 的关闭选项,所以我们只要移除系统 Menu (就是ControlBox) 的关闭选项即可!您自己可以先看看您现在使用的 Browser 左上方的系统 Menu,【关闭】选项是在第几个,不是第6个!是第7个,分隔线也算一个!分隔线才是第6个!

    当我们移除了关闭选项之後,会留下一条很奇怪的分隔线,所以最好连分隔线也一并移除。而 Menu 的 Index 是从0开始,分隔线是第6个,所以 Index =5。

    修正:为了让程序码在 Windows NT 也能运作正常,将各Integer型态改成 Long。89.05.04'抓取系统 Menu 的 hwndPrivate Declare FunctionGetSystemMenuLib"user32"Alias"GetSystemMenu"(ByValhwndAs Long,ByValbRevertAs Long)As Long'移除系统 Menu 的 APIPrivate Declare FunctionRemoveMenuLib"user32"Alias"RemoveMenu"(ByValhMenuAs Long,ByValnPositionAs Long,ByValwFlagsAs Long)As Long'第一个参数是系统 Menu 的 hwnd

    '第二个参数是要移除选项的 Index

    如何制作透明的表单 (Form)?

    请在声明区中放入以下声明ConstGWL_EXSTYLE = (-20)ConstWS_EX_TRANSPARENT =&H20&ConstSWP_FRAMECHANGED =&H20ConstSWP_NOMOVE =&H2ConstSWP_NOSIZE =&H1ConstSWP_SHOWME = SWP_FRAMECHANGEDorSWP_NOMOVEorSWP_NOSIZEConstHWND_NOTOPMOST = -2Private Declare FunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhwndAs Long,ByValnIndexAs Long,ByValdwNewLongAs Long)As Long

    Private Declare FunctionSetWindowPosLib"user32"(ByValhwndAs Long,ByValhWndInsertAfterAs Long,ByValxAs Long,ByValyAs Long,ByValcxAs Long,ByValcyAs Long,ByValwFlagsAs Long)As Long在 Form_Load 使用的范例如下:Private SubForm_Load()

    SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT

    SetWindowPos Me.hwnd, HWND_NOTOPMOST,0&,0&,0&,0&, SWP_SHOWME

    Me.RefreshEnd Sub

    如何在 Menu 中加入MM的图案?

    在模组中加入以下程序码:Declare FunctionGetMenuLib"user32"(ByValhwndAs Long)As Long

    Declare FunctionGetSubMenuLib"user32"(ByValhMenuAs Long,ByValnPosAs Long)As Long

    Declare FunctionGetMenuItemIDLib"user32"(ByValhMenuAs Long,ByValnPosAs Long)As Long

    Declare FunctionSetMenuItemBitmapsLib"user32"(ByValhMenuAs Long,ByValnPositionAs Long,ByValwFlagsAs Long,ByValhBitmapUncheckedAs Long,ByValhBitmapCheckedAs Long)As Long

    Public ConstMF_BITMAP =&H4&

    Type MENUITEMINFO

    cbSizeAs LongfMaskAs LongfTypeAs LongfStateAs LongwIDAs LonghSubMenuAs LonghbmpCheckedAs LonghbmpUncheckedAs LongdwItemDataAs LongdwTypeDataAs StringcchAs Long

    EndTypeDeclare FunctionGetMenuItemCountLib"user32"(ByValhMenuAs Long)As Long

    Declare FunctionGetMenuItemInfoLib"user32"Alias"GetMenuItemInfoA"(ByValhMenuAs Long,ByValunAs Long, _ByValbAs Boolean, lpMenuItemInfoAsMENUITEMINFO)As Boolean

    Public ConstMIIM_ID =&H2Public ConstMIIM_TYPE =&H10Public ConstMFT_STRING =&H0&

    在 Form 中加入一个 PictureBox,属性设定为:

    AutoSize =TruePicture = .bmp (尺寸大小为13x13,不可设定为 .ico)

    在 Form_Load 中的程序码如下:Private SubForm_Load()'取得程序中 Mennu 的 handlehMenu& = GetMenu(Form1.hWnd)'取得第一个 submenu 的 handlehSubMenu& = GetSubMenu(hMenu&,0)'取得 Submenu 第一个选项的 menuIdhID& = GetMenuItemID(hSubMenu&,0)'加入图片SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture'在一个 Menu 选项中您一共可以加入二张图片

    '一张是 checked 状态用,一张是 unchecked 状态用End Sub89、如何把小图片填满 Form 成为背景图?

    对于这个问题,我看过很多方法,有的方法很麻烦,要声明一大堆 Type,用一大堆的 API,但是有一个最笨但我认为最好的方法如下: (就好像拼磁砖一样,不用任何 API, 不必声明任何 Type)

    在 Form 中放一个 PictureBox,Picture 属性设定为某一张小图,AutoSize 属性性设定 True,完成的模组如下:SubPictureTile(FrmAsForm, PicAsPictureBox)DimiAs Integer

    DimtAs IntegerFrm.AutoRedraw =TruePic.BorderStyle =0Fort =0ToFrm.HeightStepPic.ScaleHeightFori =0ToFrm.WidthStepPic.ScaleWidth

    Frm.PaintPicture Pic.Picture, i, tNextiNexttEnd SubPictureTile 这个模组共有二个参数,第一个是表单名称,第二个则是 PictureBox 的名称。以下为一应用实例:Private SubForm_Load()

    PictureTileMe, Picture1End Sub90、如何把小图片填满 MDIForm 成为背景图?

    以下这个范例, 要:1、一个 MDIForm:不必设定任何属性。2、一个 Form1:不一定是 MDIChild,最好 MDIChild 为 False,但是 AutoRedraw 设成 True。3、Form1 上面放一个隐藏的 PictureBox:名称为 Picture1,不必设定 Picture 属性。4、一张图片的完整路径。'将以下模组放入 MDIForm 的声明区中:SubTileMDIBkgd(MDIFormAsForm, bkgdtilerAsForm, bkgdfileAs String)Ifbkgdfile =""Then Exit Sub

    DimScWidth%, ScHeight%

    ScWidth% = Screen.Width / Screen.TwipsPerPixelX

    ScHeight% = Screen.Height / Screen.TwipsPerPixelY

    Load bkgdtiler

    bkgdtiler.Height = Screen.Height

    bkgdtiler.Width = Screen.Width

    bkgdtiler.ScaleMode =3bkgdtiler!Picture1.Top =0bkgdtiler!Picture1.Left =0bkgdtiler!Picture1.Picture = LoadPicture(bkgdfile)

    bkgdtiler!Picture1.ScaleMode =3Forn% =0ToScHeight%Stepbkgdtiler!Picture1.ScaleHeightForo% =0ToScWidth%Stepbkgdtiler!Picture1.ScaleWidth

    bkgdtiler.PaintPicture bkgdtiler!Picture1.Picture, o%, n%Nexto%Nextn%

    MDIForm.Picture = bkgdtiler.Image

    Unload bkgdtilerEnd Sub以下为一应用实例:Private SubMDIForm_Load()

    TileMDIBkgdMe, Form1,"c:\windows\Tiles.bmp"End Sub

    关闭指定的程序

    要做到像 Task Manager 一样,可以关闭指定的程序,方法如下:

    在声明区中放入以下声明:(16位 改成 win31 API)Declare FunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAs String,ByVallpWindowNameAs String)As Long

    Declare FunctionPostMessageLib"user32"Alias"PostMessageA"(ByValhwndAs Long,ByValwMsgAs Long,ByValwParamAs Long, lParamAsAny)As Long

    Public ConstWM_CLOSE =&H10以下之范例示范如何关闭一个视窗标题 (Caption) 为 【小算盘】的程序:DimwinHwndAs Long

    DimRetValAs LongwinHwnd = FindWindow(vbNullString,"小算盘")

    Debug.Print winHwndIfwinHwnd <>0ThenRetVal = PostMessage(winHwnd, WM_CLOSE,0&,0&)IfRetVal =0ThenMsgBox"Error posting message."End If

    ElseMsgBox"并未开启小算盘程序."End If

    如何隐藏及再显示鼠标

    很简单,只用到了一个 ShowCursor API,参数也很简单,只有一个 bShow,设定值如下:

    True:显示鼠标 / False:隐藏鼠标Declare FunctionShowCursorLib"user32"Alias"ShowCursor"(ByValbShowAs Long)As Long

    如何从您的应程序中结束 Windows 重开机?

    很多软件在 Setup 完之后都会自动关机重开机,以便让某些设定值可以生效,其实这个功能很简单,只要几行指令就可以做到了!

    关键就是要使用 ExitWindowsEx 这个 API,这个 API 只有二个参数,第一个参数是一个 Flag,目的是要告诉 Windows 要以什么方式关机,在下面的声明中会列出可用的 Flag 常数值,至于第二个参数则是一个保留值,只要设定成0就可以了。

    很重要的一点是:如果您想要让关机动作更顺利,记得要 Unload 您的程序!'在声明区中 (Bas Module / Form Module) 加入以下声明:Public ConstEWX_LOGOFF =0'这四个常数值可以并用Public ConstEWX_SHUTDOWN =1Public Constcolo

    展开全文
  • 关闭窗口时弹出提示,VB的源代码,不要搞错噢,本代码不是网页特效,是VB程序代码,在退出程序时弹出一个提示询问是否真要关闭窗口,让用户确认,仅供参考。
  • VB 6.0 OpenPlayer Flash播放器源代码,最后一次更新修改了SimplePlayer 在运行时没有选取择文件就退出 出现非法操作的Bug,添加了[屏蔽快捷键的功能],主要是为一些游戏而设的,在播放窗口的右键[控制]->[屏蔽...
  • 设置段落缩进 Vb代码 设置段落缩进Vb代码,通过这个程序可设置段落的首行悬挂缩进、左右缩进等。像Word一样的功能。
  • VB经典代码

    千次阅读 热门讨论 2020-01-22 15:57:11
    一、赋值相容问题 Private Sub Command1_Click() Dim x As Integer Dim y As String y = "100.23" '将数值形式的字符串赋给y ...以上就为小编对VB书中一些经典代码的理解,欢迎下方评论(微笑!)

    一、赋值相容问题

    Private Sub Command1_Click()
        Dim x As Integer
        Dim y As String
        y = "100.23"            '将数值形式的字符串赋给y
        x = y                   '将字符串变量y赋给整形变量x
        y = y + 20
        Text1.Text = x
        Text2.Text = y
    End Sub

    <思想**>很容易就可以看出这是一个对x、y进行相互赋值的代码。

    <分析**>赋值语句Let

                      作用:把一个表达式的值赋给一个变量或一个对象的属性

                      一般格式:[let]  <变量名>=<表达式>         变量赋值

                                        [Let]   [<对象名>.]<属性名>=<表达式>       属性赋值

                     说明:赋值语句具有计算和赋值的双重功能,先计算“=”号右边的表达式,然后把结果赋给“=”号左边的变量

    举例:
    
    x=y      '将y的值赋给x
    y=x      '将x的值赋给y

     

     

     

    二、信息对话框MsgBox

    Private Sub Form_Unload (Cancel As Integer)
        X = MsgBox("确定要退出吗?",4+32+256,"关闭窗口")
            //或者X = MsgBox("确定要退出吗?",vbYesNo+vbQuestion+vbDefaultButton2,"关闭窗口")
        If X = 6 Then
           Cancel = 0
        Else
           Cancel = 1
        End If
    End Sub

    <思想**>使用信息框函数(MsgBox)显示信息,等待用户选择

    <分析**>信息框函数(MsgBox)

                  使用格式:<变量名>=MsgBox(<提示信息>)[, <对话框类型>  [,<对话框标题>]])

                                  *<提示信息>最大长度为1024个字符,使用回车符Chr(13)、换行符Chr(10)使显示的文本换行

                 MsgBox()函数的返回值指明了用户在对话框中选择了哪一个按钮。

    返回值    返回常量             操作说明

    1                VbOK              选择了确定按钮

    2                VbCancel        取消按钮     

    3                VbAbort           终止按钮

    4                VbRetry           重试按钮

    5                VbIgnore         忽略按钮

    6                VbYes                是按钮

    7                vbNo                否按钮

           参数Cancel是一个整数,用来确定窗体是否从屏幕删除。如果Cancel为0,则窗体被删除。将Cancel设置为任何一个非0只可 防止窗体被删除;当使用窗体右上角的“×”(关闭)按钮命令或用Unload语句关闭该窗体是,此事件被触发。

     

     

    三、口令问题

    Private Sub Command1_Click()
        a = UCase(Text1.Text)        '将Text1中输入的字符转换成大写字母
        If a = "ABC" Then            '口令正确
           Unload Form1              '卸载窗体Form1
           Form2.Show                '显示窗体Form2
        Else
           Label2.Caption = "对不起,口令错!"& Chr(13) & "请重新输入"
           Text1.SetFocus            'Text1获得焦点
           Text1.SelStart = 0        '将Text的插入点置于最前端
           Text1.SelLength = Len(a)  '选中用户上次输入错误的所有字符
        End If                       '自动进入改写状态
    End Sub
    
    Private Sub Form_Load()
        Text1.SelStart = 0
        Text1.SelLength = Len(Text1.Text)
    End Sub
    
    Private Sub Text1_Change()
        Label2.Caption = ""
    End Sub

    <思想**>输入口令,点击确认进入指定窗口,若错误提示错误信息,输入框不管输入什么字符,只显示“*”

    <分析**>块结构条件语句(多行条件语句)

                   语法格式:

    If<条件>Then
      <语句块1>
    [Else
      <语句块2>]
    End If

                 这是一个我们很常见的设计口令窗口,本段代码就是一个典型的运用选择结构中条件条件语句的实例,通过先判断后执行的方法对输入的字符进行判断后生效。

     

     

    四、计算1+2+3+...+100

    Private Sub Form_Click()
        Dim s As Integer,n As Integer 
        Show
        s = 0:n=1
        Do While n <=100
          s = s + n
          n = n + 1
        Loop
        Print"1+2+3+...100=";s
    End Sub

    <思想**> 利用循环结构中的Do...Loop语句对1-100的数进行累加,用变量s存放累加和,s的初值为0,用变量n计数

    <分析**>Do...Loop语句(既可以先判断后执行,又可以先执行后判断)

                 语句格式:Do[While|Until<条件>]

                                      [循环体]

                                    Loop

                 当<条件>为真(True)时执行循环,条件为假(False)时,终止循环

     

     

    五、求自然数1~100之间的奇数之和

    Private Sub Form_Load()
        Dim i As Integer,s As Integer
        Show 
        For i = 1 To Step 2
          s = s + i
        Next i 
        Print"1~100奇数累加和为:";s
    End Sub

    <思想**>使用循环结构中的For ... Next语句求奇数和问题,运用步长Step概念

    <分析**>For ... Next语句

                  是实现循环结构的一种形式,属于计数型循环,通常用于循环次数已知的程序结构中。             

                 语法格式:

    For<循环变量>=<初值>To<终值>[Step<步长>]
      [<循环体>]
    Next[<循环变量>]

                 本段代码用变量i 作循环变量,i的初值为1,终值为100,步长为2,i分别取值为1,3,5,...,99,变量s作为累加器,将每一个i的值累加到s中,最后将累加结果显示在窗体中。                                                                                                    

     

     

    六、 打印乘法九九表

    Private Sub Form_Click()
       FontSize = 10
       Print Tab (31) ;"乘法九九表"
       Print Tab (30) ;"----------"
       For i = 1 To 9
         For j = 1 To i
           Print Tab ((j-1) * 8); i & "*" & j & "=" & i*j;
         Next j
         Print             '每行之后产生一个换行
       Next i
    End Sub
    

    <思想**>使用循环结构中的多重循环对代码进行嵌套

    <分析**>当在循环体内包含另外一个循环语句时,就形成了嵌套循环,又叫多重循环

     

    以上就为小编对VB书中一些经典代码的理解,欢迎下方评论(微笑!)

    展开全文
  • VB水费收费管理信息系统,完整的毕业论文设计资料,含VB代码实例,系统功能:用户信息的添加、修改、删除和查询。 水费类型信息的修改、删除和查询。 水费价格信息的删除和查询。 新入用户信息的添加、修改、取消...
  •  映射网络驱动器,'如果函数成功,则返回ERROR_SUCCESS (0),如果用户选择了对话框中的 '“取消”按钮,则返回&HFFFFFFFF。在Windows NT中,可能会显示一个先前定义的Windows对话框,以连接到一个网络打印机。即...
  • VB代码注释器

    2011-10-27 20:09:39
    一个VB的插件,安装后,在VB的界面上增加几个按钮,可以注释代码取消注释代码等,并且支持鼠标中间滑轮滚动,代码跟着滚动,很好用。里面有详细的使用说明
  • 摘要:VB源码,图形处理,图片浏览 VB编写的图片浏览标记器,可以快速的浏览电脑中图片,基本支持所有图片格式,JPG,PNG,GIF,BMP等,可以针对性的对照片进行放大、缩小,标记文件,处理标记等,支持上一张、下一张...
  • private sub cancel_click() readout = format(0, "0.") op1 = 0 op2 = 0 form_load end sub ' ce (取消输入) 按钮的 click 事件过程。 private sub cancelentry_click() readout = format(0, ...

    2015-11-03 回答

    1、在窗体上摆一个command1,然后在窗体上复制粘贴command,直到你需要的按钮数。

    2、在窗体上摆一个label1

    3、按钮名和标签名按以下程序中用的名称修改。

    ' ------------------------------------------------------------------------

    '               版权所有 (c) 1994 microsoft corporation

    '

    ' 您可以免费以任何方式使用、修改、复制并分发您认为有用的

    ' 示例应用程序文件 (或任何修改过的版本)。microsoft 对任何

    ' 示例应用程序文件不做任何保证,不负任何责任和义务。

    ' ------------------------------------------------------------------------

    option explicit

    dim op1, op2                ' 预先输入操作数。

    dim decimalflag as integer  ' 小数点存在吗?

    dim numops as integer       ' 操作数个数。

    dim lastinput               ' 指示上一次按键事件的类型。

    dim opflag                  ' 指示未完成的操作。

    dim tempreadout

    ' c (取消) 按钮的 click 事件过程

    ' 重新设置显示并初始化变量。

    private sub cancel_click()

    readout = format(0, "0.")

    op1 = 0

    op2 = 0

    form_load

    end sub

    ' ce (取消输入) 按钮的 click 事件过程。

    private sub cancelentry_click()

    readout = format(0, "0.")

    decimalflag = false

    lastinput = "ce"

    end sub

    ' 小数点 (.) 按钮的 click 事件过程

    ' 如果上一次按键为运算符,初始化 readout 为 "0.";

    ' 否则显示时追加一个小数点。

    private sub decimal_click()

    if lastinput = "neg" then

    readout = format(0, "-0.")

    elseif lastinput <> "nums" then

    readout = format(0, "0.")

    end if

    decimalflag = true

    lastinput = "nums"

    end sub

    ' 窗体的初始化过程

    ' 设置所有变量为其初始值。

    private sub form_load()

    decimalflag = false

    numops = 0

    lastinput = "none"

    opflag = " "

    readout = format(0, "0.")

    'decimal.caption = format(0, ".")

    end sub

    ' 数字键 (0-9) 的 click 事件过程

    ' 向显示中的数追加新数。

    private sub number_click(index as integer)

    if lastinput <> "nums" then

    readout = format(0, ".")

    decimalflag = false

    end if

    if decimalflag then

    readout = readout + number(index).caption

    else

    readout = left(readout, instr(readout, format(0, ".")) - 1) + number(index).caption + format(0, ".")

    end if

    if lastinput = "neg" then readout = "-" & readout

    lastinput = "nums"

    end sub

    ' 运算符 (+, -, x, /, =) 的 click 事件过程

    ' 如果接下来的按键是数字键,增加 numops。

    ' 如果有一个操作数,则设置 op1。

    ' 如果有两个操作数,则将 op1 设置为 op1 与

    ' 当前输入字符串的运算结果,并显示结果。

    private sub operator_click(index as integer)

    tempreadout = readout

    if lastinput = "nums" then

    numops = numops + 1

    end if

    select case numops

    case 0

    if operator(index).caption = "-" and lastinput <> "neg" then

    readout = "-" & readout

    lastinput = "neg"

    end if

    case 1

    op1 = readout

    if operator(index).caption = "-" and lastinput <> "nums" and opflag <> "=" then

    readout = "-"

    lastinput = "neg"

    end if

    case 2

    op2 = tempreadout

    select case opflag

    case "+"

    op1 = cdbl(op1) + cdbl(op2)

    case "-"

    op1 = cdbl(op1) - cdbl(op2)

    case "x"

    op1 = cdbl(op1) * cdbl(op2)

    case "/"

    if op2 = 0 then

    msgbox "除数不能为零", 48, "计算器"

    else

    op1 = cdbl(op1) / cdbl(op2)

    end if

    case "="

    op1 = cdbl(op2)

    case "%"

    op1 = cdbl(op1) * cdbl(op2)

    end select

    readout = op1

    numops = 1

    end select

    if lastinput <> "neg" then

    lastinput = "ops"

    opflag = operator(index).caption

    end if

    end sub

    ' 百分比键 (%) 的 click 事件过程

    ' 计算并显示第一个操作数的百分数。

    private sub percent_click()

    readout = readout / 100

    lastinput = "ops"

    opflag = "%"

    numops = numops + 1

    decimalflag = true

    end sub

    展开全文
  •  _ ' 唯讀密碼 ByVal sRWPass As String) As Long ' 完整存取密碼 Public Function DeleteShare _ ' 取消資源分享模組 (ByVal sShareName As String) As Long ' 資源分享名稱 呼叫範例如下: ...
  • VB扫雷游戏完整教程及代码

    千次阅读 2020-09-07 18:12:40
    扫雷游戏完整教程及代码 ** 扫雷是一个非常经典的windows游戏,相信每个人都玩过。我做的这个扫雷基本上继承了windows中扫雷的玩法。通过菜单栏中的新游戏,选择一个游戏难度,即可进入扫雷界面。单击任意一个按钮,...
  • VB编程限制ComboBox下拉框的右键,程序先取得Combo的hwnd,然后记录原本的状态,接下来限制鼠标右键,最后取消鼠标右键事件的截取,恢复原状态。代码中使用了一个bas方法截取鼠标右键按下状态,将之送往原来的Window...
  • vb 点击关闭按钮时窗体隐藏点击关闭按钮时窗体隐藏 点击command1 又能实现 Unload Mevb 点击关闭按钮时会产生 UnloadMode = 0,可以通过它来判断实现。 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode...
  • VB代码 定时屏保 屏蔽进程 结束系统进程 提权 各种特效 ,我自己收集改写,有兴趣的可以自己完善
  • 这是自己做得一个平滑进度条。 可以设置显示的文字,进度条的颜色。其他与普通进度条一致。 还有一点无伤大雅的bug。 转载请保留控件最上方文字提示。
  • C#和VB的分析器库,使用进行重构,代码分析和其他功能。 在上检查官方项目站点。 在这里,您会找到有关如何捐款,我们的任务委员会,完成的定义,准备的定义等信息。 您可以使用以下语言找到此文档 这是一个免费...
  • 摘要:VB源码,系统相关,鼠标跟踪,光标 一款VB鼠标限制程序,限定鼠标光标在某个按钮内移动(再次单击按钮将取消限制),移动光标到“设置鼠标消失”按钮,设置鼠标消失,在窗体内单击鼠标将限制光标在窗体内移动!...
  • VB开发的BQ网络聊天系统源程序,数据库采用SQL2005,本BQ聊天系统分为客户端和服务端两个部分,客户端主要用于用户注册和登录、信息的发送等;服务器端主要用于记录用户在线状态和管理注册用户。  操作流程:  (1)...
  •  由VB代码开发的C语言编辑器,软件功能:  1.具备记事本的所有编辑功能;  2.实现了与TC.计算器.WINDOWS自带游戏的连接,切换快捷;秘籍:若你单击子窗体上的日期标签将会弹出本软件自带的打字游戏.  3.查找与...
  • 开机自动运行功能,通过修改注册表的方法,让程序随windows电脑系统自动启动运行,VB6.0设置注册表随WINDOWS自动启动的功能,用到了一个随WINDOWS自动启动/取消启动模块AutoRun.bas,你可将此模块应用于众多的VB项目...
  • TreeView:Contoh源代码VB 6取消菜单菜单alternatif menggunakan komponen TreeView(Microsoft Windows Common Control 6.0)
  • radio取消选中时触发事件android radiobutton点击后一直是选中状态,怎么再Radiobutton既单选框,多个单选框中必须有一个是选中的,如果你想选择之后又取消,那么要使用CheckBox来实现改变它的状态,方式有三种:XML中...
  • 【摘要】即将参加全国计算机等级考试的考生们,考试即将到来,大家的...关于2020年全国计算机二级VB复习知识点:创建VB应用程序的一的具体内容如下:2020年全国计算机二级VB复习知识点:创建VB应用程序的一般步骤创...
  • vb写自动在下午7点关机的代码。要加一个timer控件,频率随便设,一个按钮(为了取消关机),窗口设置为隐藏,并且开机自动启动。
  • 内容索引:VB源码,界面编程,listview,复选框 VB给listview控件添加自动选择功能,也就是说当我们用鼠标点击列表的某一行而非点击复选框的时候,复选框会自动打勾选中,再次单击鼠标则取消选中,在某些软件系统中,...
  • VB串口调试助手源代码

    千次阅读 2018-01-10 22:42:04
    'ImgSwitch.Picture = LoadPicture("f:\我的VB\串口调试软件\图片\guan.jpg") ' 显示串口已经关闭的图标 ImgSwitchoff.Visible = True ImgSwitchon.Visible = False Err: End Sub Private Sub Update...
  • 以前在学校时,编写代码都是使用C#,习惯了C#的代码习惯,等工作后由于工作需要逐渐的开始采用了VB.NET开发项目,渐渐地喜欢上了VB.NET,现在我就罗列一些VB.NET加速代码开发的方法。一、智能感知做.NET开发的许多人...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,730
精华内容 5,492
关键字:

vb取消代码