精华内容
下载资源
问答
  • 在我们日常编程中,进入VB编程开发界面后,默认的窗体运行后是下图的状态,右上角的关闭按钮是直接可用的状态。但是在实际开发中,有时候根据实际功能需要,会出现不想让右上角的关闭按钮起作用时的情形,那么应该...

    在我们日常编程中,进入VB编程开发界面后,默认的窗体运行后是下图的状态,右上角的关闭按钮是直接可用的状态。

    b0dbc262058437ff23f72d97c97071db.png

    但是在实际开发中,有时候根据实际功能需要,会出现不想让右上角的关闭按钮起作用时的情形,那么应该如何做呢?

    74e868815afa2da935306221e9b0c1a4.png

    代码实现:

    标准模块代码:

    Option ExplicitDeclare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongDeclare Function DeleteMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongDeclare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As LongPublic Const MF_BYPOSITION = &H400&

    窗体中代码:

    Option ExplicitPrivate Sub Form_Load() '窗体载入时调用模块中的方法禁用关闭按钮    Dim hwndMenu As Long    Dim c As Long    hwndMenu = GetSystemMenu(Me.hwnd, 0)    c = GetMenuItemCount(hwndMenu)    DeleteMenu hwndMenu, c - 1, MF_BYPOSITION    c = GetMenuItemCount(hwndMenu)    DeleteMenu hwndMenu, c - 1, MF_BYPOSITIONEnd SubPrivate Sub Command1_Click() '退出    EndEnd Sub

    赶快实际运行,体验一下吧~

    ▼更多编程干货▼VB编程语言基础知识点总结(转)VB6.0中文简体版安装视频教程!VB开发的实际项目展示!VB编程就是这么强大!

    大家在学习VB编程的过程中有不懂之处,可以添加下图小编微信号:vbyjk521 ,学习问题在线解答。

    72449c6e34fdc06a1c01129e1692dde4.png

    展开全文
  • VB窗体打开关闭的淡入淡出效果 代码精简完美实现 欢迎大家下载测试!
  • vb窗体设计

    2011-12-19 10:58:16
    窗体由全图片构造,包括,标题栏,最大化、最小化、关闭按钮,一下为部分代码, Private Sub Form_load() Dim retValue As Long Image5.Picture = LoadPicture("D:\vb测试\vb实例\窗体的设计2\8.jpg") Image6....
  • VB窗体皮肤美化示例,BMP图片美化窗体二例。你可以借鉴本代码内的方法轻松地设计属于自己的软件界面,专业的淡蓝色风格,看着舒服自然。注意,本源码并没有全部完善,比如拖动右下角不能改变窗口大孝任务栏右键无法...
  • 如何在VB关闭窗体

    千次阅读 2005-02-15 17:59:00
    本段代码实现了在VB关闭除指定窗体外的其它窗体,其实主要用于关闭所有的子窗体代码如下:为防止数据库连接不能关闭,在此关闭所有的窗口 Dim frm As Form For Each frm In Forms If frm.Name Next
    本段代码实现了在VB中关闭除指定窗体外的其它窗体,其实主要用于关闭所有的子窗体:

    代码如下:

    '为防止数据库连接不能关闭,在此关闭所有的窗口
            Dim frm As Form
            For Each frm In Forms
                If frm.Name <> "frmMDIMain" Then Unload frm
            Next
    展开全文
  • 两个简单漂亮的VB窗体美化源码,你可以借鉴本代码内的方法轻松地设计属于自己的软件界面,专业的淡蓝色风格,看着舒服自然。注意,本源码并没有全部完善,比如拖动右下角不能改变窗口大孝任务栏右键无法关闭该窗口等...
  • 禁用窗体关闭按钮

    2011-12-16 15:18:19
    VB利用API禁用窗体关闭按钮,源代码
  • 窗体的位置会被记住,每次打开的位置会与你上次关闭窗体的位置相同。如果在子窗体里进行过循环赋值你会发现,如果在赋值前没有对数组进行清空动作,数组会不断被不断累计。导致出现这些问题的原则是因为在VB.NET中,...

    ShowDialog是VB.NET中模式窗体的调用方式。

    如果使用VB.NET中的ShowDialog()方法调用子窗体后,你会发现在VB.NET中模式窗体的性质和VB6中有一些不同。

    窗体的位置会被记住,每次打开的位置会与你上次关闭窗体的位置相同。如果在子窗体里进行过循环赋值你会发现,如果在赋值前没有对数组进行清空动作,数组会不断被不断累计。

    导致出现这些问题的原则是因为在VB.NET中,被ShowDialog出来的窗体关闭后实际只是被隐藏了,而没有被销毁。既并没有执行Dispose。

    如果要彻底销毁模式窗体就需要在Close或是窗体关闭按钮中加入Dispose()方法。但是这样又会出现另一个问题,在模式窗体被销毁的时候,主窗体会被重画。看到的现象就是主窗体整体闪动了一下,这对于一些客户来说是不友好的。

    直接Close窗体没有被彻底销毁,如果强制执行Dispose(),主窗体有会被刷新。真的没有一个两全其美的办法吗?

    其实,办法是有的而且很简单。还是Close()方法,只是位置稍有不同。

    示例:

    主窗体mainFrm 、子窗体subFrm

    1 PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click2 3 subFrm.ShowDialog()4 subFrm.Close()5 End Sub

    (程序在2010中编写,其他VS版本大家可以自己尝试一下是否会获取相同结果)

    第四行的close()就实现了彻底销毁模式窗体的目的。办法很简单,大家可以自己尝试一下!

    展开全文
  • vb禁用窗体最大化、最小化和关闭快捷菜单,禁用最大化、最小化不可用,重点实现了禁止关闭窗口的功能,禁止后窗口上的关闭按钮变成灰色不可点击了,在实现方面,核心代码如下:  Private Sub Form_Load()  ...
  • NO.1使用VBA代码添加Form窗体表单,对于一些初学者来说,似乎真的很为难。除了对代码陌生之外,并不知道如何来进行操作添加后的窗体。这也是一件十分困扰的事情。本节将介绍一下,使用vba代码添加窗体,然后在窗体上...

    NO.1

    使用VBA代码添加Form窗体表单,对于一些初学者来说,似乎真的很为难。

    除了对代码陌生之外,并不知道如何来进行操作添加后的窗体。

    这也是一件十分困扰的事情。

    本节将介绍一下,使用vba代码添加窗体,然后在窗体上添加控件,如标签按钮等等方法。

    e5c39c6f28c8397c09d33070fe2b19a4.png

    NO.2

    vba中 VBComponents 集合里包含了模块、窗体、类模块。

    添加窗体就用到VBComponents.Add()来进行操作。

    如:

    ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)

    表示添加一个窗体。

    其中vbext_ct_MSForm参数,表示将窗体添加到集合。

    类模块vbext_ct_ClassModule 标准模块vbext_ct_StdModule。

    新建表单后,运行程序什么也看不到,还需要对表单进行属性设置。

    这就是像是盖一栋大楼,只是做了大楼的一个工程设计,仅仅是立项要盖这栋大楼,而没有真正实施盖楼的过程。

    所以,名义上的新建了这栋楼,但其并没有变成实际意义上的大楼。

    感觉有点不可接受,不管怎么说,以上代码并不能让你看到新建的窗体。

    接下来,要对窗体进行一些属性设置,就是说要真正的施工对进入工地盖楼了。

    设置窗体属性,要用到Properties()。中文意思就是不动产、财产、所有物等等。

    Properties()括号里添加窗体属性名称,然后等于号,属性值。

    这样才能够对新建的Form窗体进行实体化赋值。

    如下代码:

    .Properties("caption") ="我是新建窗体"'窗体标签.Properties("width") = 900'宽.Properties("Height") = 600'高

    更多窗体属性可查询帮助。

    2eea5bc3f613fb86e22262f876850b84.png

    上图为例,将对表格内容作为新建表单的标题名称、宽、高,包括窗体里的标签名称和按钮进行自定义设置。

    NO.3

    添加窗体之后不是我们的初衷,因为窗体只是一个容器,我们要往里面放很多东西。

    这就像大楼主体已经完工,但是不能住人呀,四面没有窗户,也没有各类消防设施,更没有电梯,那么,这就是说,并没有完全得到我们想要的大楼样子。

    还要对大楼进行配套设施的安装。

    添加标签

    那我们再加一个标签吧,就像在大楼顶上安装一个XXX小区的名称,是不是有点意思了。

    添加标签代码:

    With ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Designer.Controls.Add("Forms.Label.1")End With

    由于新建的窗体还处在编辑模式下,所以不能直接引用Controls.Add(),要在其前面加Designer。

    Designer中文意思就"设计师"。看到了吧,整个过程当中,不能以一种既定的事实来对待这件事情。

    就像不能对一栋在建的大楼以成熟小区来对待一样,不能随意进出,也不能以为它是一个有人住的地方,真正意义上它还是不算是一个小区。

    只有交付使用之后,才能作为一个正常的对象来对待。

    所以,要特别注意的地方在对表单里的对象进行属性设置的时候,前面添加"设计师"Designer。

    示例:

    默认F为新建的窗体对象。

    Dim Lobj As Object        Set Lobj = F.Designer.Controls.Add("Forms.Label.1")         With Lobj            .Caption = "恭喜!你已经成功新建了一个表单窗体。"            .Top = 50            .Left = 0            .Height = 90            .Width = .Parent.Width            .TextAlign = 2                    With .Font                        .Size = 28                        .Name = "黑体"                        .Bold = True                     End With        End With

    添加按钮

    同理,添加按钮用如下代码:

    With ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm) .Designer.Controls.Add("Forms.CommandButton.1")End With

    NO.4

    显示窗体

    如此进行,对代码细致的编写之后,构造整个表单的过程就完成了。

    但是,我们还是不能看到它的模样,因为没有把它呈现在眼前。

    就比如,在北京盖了一栋大楼,而你在广州。

    想要看到这楼,是不是有两个办法,一你亲自来北京,站到大楼下面,二给大楼拍个视频,通过视频信息传输设备观看。

    这就是说,这楼是盖好了,在你看到它之前,还有一些方法去完成,不然,真的难说这楼是个什么样子。

    说了这么多,编程就是这么玄乎,真真假假,假假真真,要抓到代码表示的实际东西,还真不是一件轻松的事情。

    我们接着就是要把窗体呈现在电脑屏幕上,让自己或别人看到它,而不只是某种意义上的代码构造完成这种玄乎的事情。

    显示出来也需要一行代码,也十分简单一行代码,如下:

    F默认新建的窗体对象

    VBA.UserForms.Add(F.Name).Show

    运行后效果如下图

    d761a1fc7e51b9b7b18a4da7f4cfff53.png

    是不是完整了一些,如不添加标签和按钮,那么什么也没有。

    这样新建后的表单就有了更多的内容。

    NO.5

    删除窗体

    最后一步删除窗体,这个不提倡使用,但要学会使用。

    F为默认新建窗体对象变量。

    ThisWorkbook.VBProject.VBComponents.Remove F

    这句意思是从VBComponents集合中移除F窗体。

    这个不能用大楼来比喻,没有移除大楼的过程,而且操作起来也太困难,也现实中最大把设计图纸销毁,完成移除。

    35f3b4a84ba21dd31802cf7849b93c20.png

    NO.6

    完整代码

    以上代码可作为学习之用,以下偌直接复制到自己的VBE窗体中使用即可。

    新建窗体过程函数

    Private Sub AddNewForm()Dim w As WorksheetSet w = ActiveSheetDim F As ObjectSet F = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)    With F        .Properties("caption") ="我新建的表单窗体"        .Properties("width") =900        .Properties("Height") = 600        Dim Lobj As Object        Set Lobj = F.Designer.Controls.Add("Forms.Label.1")         With Lobj            .Caption = "恭喜!" & VBA.vbCrLf & VBA.vbCrLf & "你已经成功新建了一个表单窗体。"            .Top = 50            .Left = 0            .Height = 90            .Width = .Parent.Width            .TextAlign = 2            With .Font                .Size = 28                .Name = "黑体"                .Bold = True             End With          End With          With F.Designer.Controls.Add("Forms.CommandButton.1")            .Caption = "关 闭"            .Width = 150            .Height = 28            .Top = Lobj.Top + Lobj.Height + 50            .Left = .Parent.Width  2 - .Width  2          End With    ''''''''''''''''''''''''''''''''''''''''''' Button按钮 CodeModule    With ThisWorkbook.VBProject.VBComponents(F.Name).CodeModule        .InsertLines 2, "Private Sub CommandButton1_Click()"        .InsertLines 3, "Unload me"        .InsertLines 4, "End Sub"    End With            End With        VBA.UserForms.Add(F.Name).Show    ThisWorkbook.VBProject.VBComponents.Remove FEnd Sub

    NO.7

    学习VBA,从0开始构造一个应用界面,十分不好掌握其中一些代码应用。

    有些代码在编辑过程中会遇到很多问题,同时也会增加许多不明白的问题,需要一一解决。

    本身VBA已经给出很多常用的一些对象,直接拿来使用就可以,但是对于喜欢结构编程方法的人来说,面向对象真的是小儿科。

    怎么办呢,呵呵!努力吧!

    ---END---

    欢迎关注、收藏

    展开全文
  • 动态改变窗体尺寸程序(VB6.0代码编写) 当打开和关闭时窗体会动态改变尺寸 QQ223857666勾月
  • 窗体的位置会被记住,每次打开的位置会与你上次关闭窗体的位置相同。如果在子窗体里进行过循环赋值你会发现,如果在赋值前没有对数组进行清空动作,数组会不断被不断累计。 导致出现这些问题的原则是因为在VB.NET中...
  • 我们经常需要实现“用户关闭窗体,但窗体并不关闭而是最小化”的功能,这个功能的实现非常简单,只需在FormClosing事件中写入如下代码即可: If e.CloseReason = CloseReason.UserClosing Then '判断是不是用户做出...
  • 前几天,我们在调试代码的过程中我发现,我们的画图板窗体关闭按钮不可用,这是什么原因呢,查了关于窗体得属性只有控制Maxbutton 和MinButton,而没有控制关闭的,我们找来了师傅,在百度上查了又查终于找到答案了!...
  • 这是一个相对简单的VB制作透明 窗体的方法,看上去这个窗体无边框、无标题栏,也没有最小最大化及关闭按钮,完全显示了一个图片的效果,其实本代码是一个透明窗体的实现实例,特此为大家分享代码如下:  Private ...
  • VB.NET的form窗体操作

    千次阅读 2018-07-06 16:18:13
    此处假设有2个窗体窗体A与窗体B 打开窗体 窗体A在打开窗体B时存在2种方式: 窗体B.Show() ...注:如果窗体显示为有模式,则在关闭该对话框之前,不执行 ShowDialog 方法后面的代码。但是...
  • 就是说你当前的窗体是模块窗体(类似msgbox,用户响应并关闭窗体后才能继续执行后面的代码),这个窗体关闭时,再加载其他窗体的话,新加载的窗体也必须是模式的。 http://zhidao.baidu.com/link
  • 要在vb中获access窗体的属性及窗体中控件的属性。 代码如下: Private Sub Command1_Click() Dim accApp As Access.Application Set accApp = New Access.Application accApp.Visible = False accApp....
  • VB关机代码

    2012-01-19 15:24:34
    VB关机代码 2011年07月20日  .首先在Form1窗体上添加一个Label1控件属性text设置为:今天:2.然后分别添加3个button控件name分别为button1、button2、button3它们的text属性分别为1. 关闭计算机(启动定时器)2. ...
  • 机房收费系统总结之关闭窗体

    热门讨论 2014-02-09 21:27:45
    我们在系统开发的时候,通常情况下都会遇到关于对主窗口关闭时需要做一些列的业务操作,或者弹出提示框提醒用户是否...这是VB6.0的代码: '判断系统是否退出 Private Sub MDIForm_QueryUnload(Cancel As Integer, U
  • VB界面与按键小精灵完美结合实现窗体句柄、类别及标题的获取(含源代码):其中整合了VB界面的制作,托管图标的刷新,文件的读写、按键精灵外部程序的调用与关闭窗体句柄、类别、标题的获取,文件的创建、删除及...
  • Private Sub open_Click() '打开带图形的窗体 CommonDialog1.Filter = "所有图形文件" & "|*.jpg; *.bmp ; *.ico ;*.gif;*.cur" CommonDialog1.ShowOpen Static i As Integer If i main_frm.Visible = False ...
  • 错误:Win10下使用VB6.0打开一个.vbp...原因:Win10对于打开软件窗体的位置会在注册表中PositionObject项进行记录,所以VB上次关闭的位置是下次打开的位置。如果VB在扩展屏幕中关闭,PositionObject记录的位置就是...
  • 初涉VB.NET入门级代码积累

    千次阅读 2006-12-04 17:45:00
    [代码1]说明:这就是取消关闭的事件,执行对窗体退出方面的控制。其中没见过的只有Dispose()这个方法,MSDN里看到是释放某托管对象的应用,还不了解。日后懂了再记录于此。 Protected Overloads Overrides Sub ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 160
精华内容 64
关键字:

vb窗体关闭代码