精华内容
下载资源
问答
  • 用toolbar控件,我在toolbar的属性中添加了几button,但怎么做成和office里的那样的工具栏?
  • # **VB.NET DesignSurface 右键菜单如何添加 (ContextMenuStrip)** [百度知道——窗体设计器添加右键菜单](https://zhidao.baidu.com/question/1305612275502458939.html "") ![图片说明]...
  • 本节将介绍一下,使用vba代码添加窗体,然后在窗体上添加控件,如标签按钮等等方法。NO.2vba中 VBComponents 集合里包含了模块、窗体、类模块。添加窗体就用到VBComponents.Add()来进行操作。如:ThisWor...

    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---

    欢迎关注、收藏

    展开全文
  • 使用下面的命令能够动态添加按钮控件数组: Dim Maxid As Integer Private Sub Command1_Click() ...可是,在下次打开窗体时新添加的按钮就不存在了,如何在下次打开窗体时动态添加的控件还在窗体上?
  • 首先新建个窗体应用程序,在界面添加如下四个按钮: 我们利用重写Form中的ProcessCmdKey事件来获取按键值,从而绑定到按钮事件: Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal key...

    今天有朋友问到如何把按键响应到按钮事件,做成类似遥控器的形式。简单的写了个小程序,顺便分享出来:

    首先新建个窗体应用程序,在界面添加如下四个按钮:
    在这里插入图片描述
    我们利用重写Form中的ProcessCmdKey方法来获取按键值,从而绑定到按钮事件:

    Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
            Select Case keyData
                Case Keys.W
                    Btn_W_Click(Nothing, Nothing)
                    Return True
                Case Keys.S
                    Btn_S_Click(Nothing, Nothing)
                    Return True
                Case Keys.A
                    Btn_A_Click(Nothing, Nothing)
                    Return True
                Case Keys.D
                    Btn_D_Click(Nothing, Nothing)
                    Return True
                Case Else
                    Return MyBase.ProcessCmdKey(msg, keyData)   '其他键按默认处理
            End Select
        End Function
    
        Private Sub Btn_W_Click(sender As Object, e As EventArgs) Handles Btn_W.Click
            MsgBox("W")
        End Sub
    
        Private Sub Btn_A_Click(sender As Object, e As EventArgs) Handles Btn_A.Click
            MsgBox("A")
        End Sub
    
        Private Sub Btn_S_Click(sender As Object, e As EventArgs) Handles Btn_S.Click
            MsgBox("S")
        End Sub
    
        Private Sub Btn_D_Click(sender As Object, e As EventArgs) Handles Btn_D.Click
            MsgBox("D")
        End Sub
    
    展开全文
  • 在用.net制作产品时,有很多登入窗体之类的可以直接拷贝,然而如何拷贝呢 例如我们想拷贝一个登入页面 在文档中有三个文件需要复制 将这3个文件加入新工程后 添加现有项,只需要添加.vb文件 在这里三个文件意思...

    在用.net制作产品时,有很多登入窗体之类的可以直接拷贝,然而如何拷贝呢
    例如我们想拷贝一个登入页面
    在这里插入图片描述
    在文档中有三个文件需要复制
    在这里插入图片描述
    将这3个文件加入新工程后
    在这里插入图片描述
    添加现有项,只需要添加.vb文件
    在这里三个文件意思分别为
    .Designer 界面布局位置的文件
    resx文件用到资源的位置
    vb功能的实现

    展开全文
  • 一、如何vb.net教程 创建MDI窗体? 1、创建mdi主窗体 新建建立一个默认空白的Windows应用c#教程程序,在Form1窗体的属性窗口中找到IsMDIContainer 属性,设置为 True 2、创建MDI子窗体vb.net中,mdi子窗体就是...

    MDI窗体可以避免打开窗体的时候被无数个子窗体困扰,我将为大家一一的介绍一下vb.net中MDI窗体的操作方法

    一、如何vb.net教程
    创建MDI窗体?
    1、创建mdi主窗体
    新建建立一个默认空白的Windows应用c#教程程序,在Form1窗体的属性窗口中找到IsMDIContainer 属性,设置为 True
    在这里插入图片描述

    2、创建MDI子窗体
    在vb.net中,mdi子窗体就是普通的窗体,无需更改其属性。所有直接新建一个Form2

    3、添加代码

    Dim frm2 As New Form2
    Form2.Show()
    

    此时你只需要简单的实例化一下显示出来就python基础教程可以了,非常简单吧。

    二、显示MDI窗口列表
    用过带有子窗体的程序的朋友一定知道,很多程序都带显示它它本身打开的子窗体列表的功能,那么它是怎么实现的呢
    在这里插入图片描述

    现在在父窗体中修改你的MenuScript1控件的MdiWinddowListItem属性为你要设置的菜单即可。

    在这里插入图片描述

    三、排列子窗体
    你只需要在你的单击操作中填入以下代码即可

     Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
            Me.LayoutMdi(MdiLayout.TileHorizontal) '水平平铺
        End Sub
     
        Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem3.Click
            Me.LayoutMdi(MdiLayout.TileVertical) '垂直平铺
        End Sub
     
        Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem4.Click
            Me.LayoutMdi(MdiLayout.Cascade) '层叠
        End Sub
    

    看一下效果图

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    四、VB.NET 如何防止重复打开MDI子窗体?

    Private Sub 窗体1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 窗体1ToolStripMenuItem.Click
            Dim frm2 As New Form2
            CheckForm(frm2, "Form2")
            frm2.WindowState = FormWindowState.Normal
            ShowForm(Form2)
        End Sub
     
        '*****************************************************************************
        '*过程名称:CheckForm
        '*参数说明:MDIChildForm——需检测的窗体;MDIChildFormName ——检测窗体的名字
        '*功能说明:首先检测是否有MDI子窗体,如果没有,则创该MDI子窗体的窗体实例
        '*                    如果有,则检测当中有没有其窗体实例,有则激活;没有则创建其窗体实例
        '*****************************************************************************
        Private Sub CheckForm(ByVal MDIChildForm As Form, ByVal MDIChildFormName As String)
            If Me.MdiChildren.Length < 1 Then
                '如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
                ShowForm(MDIChildForm)
                Exit Sub
            Else
                Dim x As Integer
                Dim frmyn As Boolean
                For x = 0 To (Me.MdiChildren.Length) - 1
                    Dim tempChild As Form = CType(Me.MdiChildren(x), Form)
                    If tempChild.Name = MDIChildFormName Then
                        frmyn = True
                        '检测到有该MDI子窗体,设为TRUE 并退出循环
                        Exit For
                    Else
                        frmyn = False
                    End If
                Next
                If frmyn = False Then
                    '在打开的窗体中没检测到则新建
                    ShowForm(MDIChildForm)
                Else
                    '在打开的窗体中检测到则激活
                    Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)
                    MDIChildFrm.Activate()  '使子窗体激活
                    MDIChildFrm.WindowState = FormWindowState.Normal
                End If
            End If
        End Sub
     
        '**************************************************
        '*过程名称:ShowForm
        '*参数说明:MDIChildForm ——需创建实例的窗体
        '*功能说明:创建窗体实例
        '**************************************************
        Private Sub ShowForm(ByVal MDIChildForm As Form)
            Dim MDIChildFrm As Form = MDIChildForm
            MDIChildFrm.MdiParent = Me ' 定义MDI子窗体
            MDIChildFrm.Show() '打开窗体
        End Sub
     
     
        Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked
     
        End Sub
     
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim frm2 As New Form2
            CheckForm(frm2, "Form2")
            frm2.WindowState = FormWindowState.Maximized
        End Sub
    End Class
    

    好了,关于MDI子窗体的先介绍到这,有什么不足或者不正确的地方,提出来一起交流。

    展开全文
  • 请问不知道控件的类型,能不能在VB6.0中创建一个动态的OCX控件,并且添加窗体上?
  • 到现在为止, 我们讨论的只是如何创立和访问窗体实例, 而没有涉及如何读取或改变窗体内的信息。 假如你的窗体已经依照前述方法实例化, 并且访问窗体的代码都位于窗体所在的项目中, 则你可以直接操作窗体中的任何...
  • 如何在第二个窗体里使用第一个窗体的控件方法我想做一个简单的vb.net+数据库的使用,在from1的窗体里用了dataset,oledbdataadatper,oledbconnection,我想在第二个窗体里实现添加功能,可是使用,dataset的tables时是...
  • 回顾第一次敲机房收费,自己调用了api函数实现...其实仔细看两者并没有多大的区别,先看看在vb.net中如何调用: 首先添加一个类模块,来封装此API函数: [vb] view plaincopyprint? "font-size:14px;">
  • 摘引一段搜索结果,希望有帮助:建立一个模块将工程的启动设置为 sub main在模块里写下面代码public db as databasepublic rs as recordsetsub main()set db=db.opendatabase("数据库路径")第一启动窗体.showend sub...
  • 添加部件Microsoft Internet Transfer Controls. 在form中添加2个按钮,2个文本框和Inet控件 代码如下: Option Explicit ''这段代码使用了GetHeader来返回页面信息,比较准确一些 ''可以得到文件最后...
  • VB.Net中开发可继承窗体

    千次阅读 2007-06-20 22:51:00
    参考了http://msdn2.microsoft.com/zh-cn/library/1z3efhd2...存在的几个疑问:可以设置父窗体为“类库”,或者“窗体”,区别如何,还没有清楚。 默认控件属性为“friend”,改为“protected”才可继承,那“public”
  • 一、创建active控件在打开VB编程应用软件后,创建新的工程时候选择创建ACTIVE控件,然后添加自己需要的控件组合到窗体,最后生成一个ocx格式的自定义控件并保存,active控件即创建完成。二、如何使用自定义active...
  • ‘********************************************************************** ‘作者:章鱼哥 QQ:3107073263 群:...’ 2、添加到父控件的Controls集合中(对于没有窗体界面的控件,2、3步可不要,如Timer控件) ...
  • vb怎么连接数据库[编辑]概述我们对数据库进行操作时,一方面要使用户可以在程序界面上对需要的数据进行访问;...在窗体添加控件(Data1就是一个Data控件)5.改变控件的一些属性6.对Data控件进行设...
  • VB如何获取所文件选路径?

    千次阅读 2007-09-13 09:13:00
    VB如何获取所选路径?首先在部件里勾上Microsoft Common Dialog Control6.0(sp3) 然后在窗体添加CommonDialog1控件````` priavte sub command1_click() CommonDialog1.showopen text1.text=CommonDialog1.filenam
  • 续前一节,本节主要从代码的角度讨论如何向ListView中添加、删除项目 ListView项目的添加、删除主要是通过 ListView.Items进行, ListView.Items实际上是一个ListViewItemCollection类,提供了Add()、Insert()...
  • C#&VB.NET自动添加文件注释的方法

    热门讨论 2018-01-02 17:22:07
    前言 什么是头注释,如何建立代码文件头注释?如何高效建立代码文件头注释呢... 那C#中如何自动添加类头注释和窗体类头注释? 请点击下面这篇博客链接  http://blog.csdn.net/bigpudding24/article/details/458761
  • 如何关闭父窗体?C#(已解决) 习惯了VB6的灵活、简单,C#中还真的有一些不习惯。在C#中我创建了两个Form,分别是Form1和Form2。我在Form1中添加了一个Button1,添加了如下代码: Form2 newForm = ...
  • 如何调试vb dll 详细步骤 (作者:欢乐小爪 QQ:461699029) 这个对于学 dll 写程序的人有用 网页上百度 只有寥寥的几句 现我讲 具体步骤 写出 让后来人不费周折 1.在原来的dll 工程(举例为:dll工程名:...
  • 一、创建active控件在打开VB编程应用软件后,创建新的工程时候选择创建ACTIVE控件,然后添加自己需要的控件组合到窗体,最后生成一个ocx格式的自定义控件并保存,active控件即创建完成。二、如何使用自定义active...
  • 窗体添加drive控件、dir控件和filelist控件,然后在窗体加入如下代码: '********************************************************* ' Get the path of the dwg files '***********************************...
  • [vb版机房] 添加和删除用户

    热门讨论 2015-08-17 11:46:54
    添加和删除用户窗体中有一些逻辑问题如果没有注意就会造成错误。下面将对这些错误进行总结,罗列。 正在登陆的用户不能删除 如果把数据库全清之后,以后系统该如何进入呢?所以在删除用户的时候就要进行限制。

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 183
精华内容 73
关键字:

vb如何添加窗体