首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA专题05-1:一文彻底掌握用户窗体编程基础知识(上)

事件允许当用户对窗体控件进行操作时作出相应反应,事件程序要放置在用户窗体模块,能够通过双击用户窗体控件来打开代码模块窗口,或者在用户窗体控件单击右键,从快捷菜单中选择“查看代码”来打开代码模块窗口...在设置用户窗体时所选择值是缺省值,而在运行时所作变化仅当用户窗体被装载时有效。 两个最重要属性是Name属性Value属性: 1.Name属性可用于指定某个控件。...当然,可以通过控件索引号来指定控件,但这样会难于理解和调试,因此,使用名称更可取。 2.Value属性是实际输入或者输出数据。在不同控件,该属性值稍有区别。...例如,选项按钮控件和复选框控件Value属性值为True/False,而文本框控件Value值则是该文本框所包含文本。Value属性既可用于输入,也可用于输出。...而对于在其它用户窗体控件,用户窗体名称应该放在控件名之前,例如,frmEmployees.lstDepartments。

6.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

VBA实战技巧:根据工作表数据创建用户窗体控件

在一些应用场景,我们可能会需要根据工作表数据来创建用户窗体控件。例如下图1所示,在工作表第3行中有一行标题数据,想要根据标题数量在用户窗体创建标签和相应文本框。...图1 按Alt+F11组合键,打开VBE,单击菜单“插入——用户窗体”,在该用户窗体中放置一个框架控件,如下图2所示。...图2 在该用户窗体单击右键,选择“查看代码”命令,输入下面的代码: Private Sub UserForm_Initialize() Dim rngData As Range Dim....Left = 15 .Width = 90 .Caption = rngData.Cells(1, i).Value...例如,用户在文本框输入内容后,自动输入到工作表;清空文本框内容;等等。

2.2K30

Excel编程周末速成班第21课:一个用户窗体示例

3.选择插入➪用户窗体将一个新用户窗体添加到工程。 4.使用属性窗口将窗体Name属性更改为frmAddresses,并将其Caption属性更改为“地址输入”。...所需顺序是将六个数据输入控件按正确顺序放在选项顺序顶部,然后是三个命令按钮控件。 步骤3:编写初始化代码 此窗体初始化代码只需要做一件事:为复合框控件加载所有州缩写。...将每个控件Value属性设置为空白字符串很简单。这段代码被放在名为ClearForm过程,如清单21-4所示。下面将此过程添加到窗体。...清单21-4:ClearForm过程会清除窗体控件所有数据 Public Sub ClearForm()    '清除窗体所有数据    txtFirstName.Value = ""    txtLastName.Value...当你代码将在程序多个位置中使用时,将其放在单独过程。 自我测评 1.请说明使用用户窗体进行数据输入两个好处。 2.命名窗体初始化代码可能执行一项任务。

6K10

窗体UserForm——选项按钮

还是以前面激活工作表功能为例: 在不知道有多少个工作表时候,如何显示一个窗体界面,出现每一个工作表名称选项,选中后按按钮激活工作表。...由于不确定工作表数量,所以不能通过拖拽方式添加指定数量控件,这时候就需要用到UserFormInitialize事件,在UserForm初始化时候来添加控件,首先仍然拖拽一个命令按钮在窗体最上面...Me.Height = itop + 20 End Sub CommandButton1就是手动拖拽命令按钮,在属性窗口里可以看到,它代表名称,相当于是一个变量名称,和Caption是不一样...控件Top 、Height、Left、Caption等属性,都可以通过窗体设计界面,先拖拽一个相应控件,然后在属性窗口查看控件所具有的属性。...(i)) = "OptionButton" Then 'MSForms.OptionButton控件选中状态Value属性为True If Me.Controls

1.8K10

不使用反射,“一行代码”实现Web、WinForm窗体表单数据填充、收集、清除,和到数据库CRUD

}//对应表名或者实体类名称     OK,有了IDataControl接口这几个接口方法和属性,不使用反射,封装一下,“一行代码”实现Web、WinForm窗体表单数据填充、收集、清除,和到数据库...然后我们再新建立一个窗体 Form2 ,在上面放置几个我们需要表单控件并设置好我们需要保存名称和对应字段名称: ?...        在我们这个小例子,表单窗体(Form2)数据变化后(新增、修改),可以立即反应到主窗体(Form1)上,而不用主窗体去重新加载数据,这里就必须用到数据绑定集合: private BindingList...增加数据,在新窗体录入数据 ? 单击按钮保存数据,主窗体列表自动增加一行数据 ? 新窗口先不关闭,修改下消费金额,确定,发现主窗口列表数据被同步修改了。...整个过程没有从数据库去重新刷新数据到主窗口网格控件,实现了多个窗体之见数据同步。

2.7K80

Excel VBA编程

属性 range对象end属性 value属性——单元格内容 count属性,获得区域中包含单元格个数 通过address属性获取单元格地址 用activate和select方法选中单元格 copy...属性获取目录名称 使用窗体对象设置交互界面 用代码操作自己设计窗体 显示窗体窗体显示为无模式窗体 关闭或隐藏已显示窗体 用户窗体事件应用 借助Initialize事件初始化窗体 借助QueryClose...事件让窗体自带【关闭】按钮失效 为窗体控件设置功能 为【确定】按钮添加事件过程 给控件设置快捷键 更改控件Tab键顺序 用窗体设计一个简易登陆窗体 调试与优化编写代码 On Error GoTo...当在工程添加一个窗体后,就可以在窗体上自由添加ActiveX控件,只要通过编写VBA代码为这些控件指定功能,就能利用这些控件与excel互动 在工程添加一个用户窗体 设置属性,改变窗体外观...在窗体添加和设置控件功能 用代码操作自己设计窗体 显示窗体 手动显示窗体 在VBE窗口中选中窗体,依次执行【运行】——>【运行子过程/窗体】命令,即可显示选中窗体 在程序中用代码显示窗体 sub

45K21

【C#】分享一个弹出容器层,像右键菜单那样召即来挥则去

,经过研究,改为令TopMost=true,就能使浮动层与正常窗体有一致激活首控件行为,同时省却了对OnShown重写 解决子控件有时没有聚焦框(焦点虚线框)问题。...这样带来问题是某些情况下调用体验不好(体验这种事当然不是用户才有的专利,俺们码农也是人,也要讲体验说),比如弹出控件是让用户输入一些东西,完了用户点击某个按钮什么返回原窗体,然后在原窗体获取用户刚刚输入...要想获得值可能就得额外采取一些做法,例如响应弹出控件关闭事件,或者把原窗体传入弹出控件完了在后者做原本应该在原窗体事~等等,办法当然有很多,但这都是因为只能Show带来多余事,有什么比在一个方法中弹出控件...Owner为MDIParent this.Owner = c.FindForm(); } /// /// 获取控件窗体坐标...,前者不会阻塞代码,后者则会,实际应用根据情况选用。

2.7K20

Excel编程周末速成班第18课:使用用户窗体创建自定义对话框

提示:若要确定与该工具箱图标相对应控件,将鼠标光标停留在该图标上一会儿,工具提示显示控件名称。...设置属性 打开用户窗体设计并选择一个对象(窗体控件)后,该对象属性显示在“属性”窗口中。此窗口分为三个部分: 顶部下拉列表显示对象类型和所选对象名称名称以粗体显示)。...要更改属性,单击其名称。然后,进行更改方式取决于特定属性: 对于枚举属性(可以采用一组预定义值任何一个),使用右列下拉列表选择值。...此名称(Name属性)是你在VBA代码中用来引用窗体名称。在创建用户窗体后,建议为其赋予一个描述性名称,以避免必须使用默认名称。 注意:通常,你需要在设计阶段设置所有用户窗体属性。...Set frm = Nothing 提示:在属于窗体代码,Me关键字用于引用该窗体(参阅上面的第5步)。由于该窗体引用在窗体代码是隐式,因此你也可以使用属性和方法名称而无需使用Me限定符。

10.8K30

Python GUI编程:Tkinter

= "确定").pack() # 添加一个单行文本框 Entry01 = Entry(root).pack() # 展示窗体 root.mainloop() 二、控件属性 1. tkinter常用控件属性...* class login_GUI(object): def __init__(self): """ 窗体构造函数,用来做界面的初始化,GUI代码放在此函数...ttk用法同tkinter大体相同,但是有一些属性ttk不再支持,而tkinterfg、bg、font属性在ttk不再被支持,取而代之是style对象; 2....,variable通过get方法能获得value值 # 最终选中后取什么值:value,同一组radiobuttonvalue值最好是不同 # 性别的单选 radio_boy = Radiobutton...是自定义字段,那么后面的Label控件如果没有指定style是username.TLabel就不会具有style01属性 from tkinter import * from tkinter.ttk

7.1K62

CC+角角落落 第二辑 002

当Windows操作系统启动一个程序之后,由编译器插入到可执行文件启动代码(之前还干了一堆事情,初始化各个段,初始化堆、栈等)调用WinMain函数启动应用程序。...; *第二步使用RegisterClassEx函数注册窗体类,所有窗体在创建前都必须注册窗体类,只有注册窗体类才被系统认知并允许实例化,窗体控件在API命名也同属于Window,但是当你要在窗体上绘制控件就不需要对控件...(Window)类进行注册了; *第三步使用CreateWindow传参在内存创建窗体(当然同时可以创建控件); *最后使用ShowWindow显示窗体,这是处理显存程序必须做事情。...我们需要将消息进行翻译简化(使用TranslateMessage函数)然后发送到窗体消息队列(DispatchMessage函数)让窗体消息处理函数对简化了消息进行处理并做出反应。...,而不会每次面对一些新内容茫然不知所踪。

84650

窗体UserForm——代码插入不定数量带事件控件

窗体最上面这样写语句的话,就相当于手动插入了一个名称是ob选项按钮,这样在代码编辑器下拉框里,就能选择ob,然后选择对应事件。...但是在UserForm_Initialize事件里添加控件,如果使用窗体全局变量ob的话,ob只能指向最后一个控件,因为它仅仅是一个变量,不会同时指向多个控件。...而窗体全局变量声明带WithEvents时候又不能声明为数组控件,所以在窗体里没法插入不定数量,却又带有事件控件。...Sub 这样,这个类就具有了MSForms.OptionButton属性,而且内部也实现了Change事件,只要控件Value改变了,就会运行代码。...在窗体编辑代码: Option Explicit '声明COB数组,记录COB对象 Private cobs() As COB Private Sub UserForm_Initialize()

1.1K20

C#学习笔记—— 常用控件说明及其属性、事件

1、 窗体 属性 1、常用属性 (1)Name属性:用来获取或设置窗体名称,在应用程序可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体窗口状态。...(12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮名称,当按 Enter 键时就相当于单击了窗体该按钮。...(13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮名称,当按 Esc 键时就相当于单击了窗体该按钮。...(2)Hide方法:该方法作用是把窗体隐藏出来,其调用格式为: 窗体名.Hide(); 其中窗体名是要隐藏窗体名称。...(2)  在该对话框【模板】下面的列表框        选中【Windows 窗体】图标,在【名称】文本框输入窗体名,然后单击【打开】按钮,即为应用程序添加了一个窗体

9.5K20

实现Windows程序数据更新

枚举是一组描述性名称 定义一组有限值,不包含方法 对可能值进行约束 枚举是一组指定常数,对可能值进行约束 枚举使用时直观方便、更易于维护 pictureBox控件 属性名称    说明 image...   在空间中显示图像 SizeMode  如何处理图像和控件大小关系 定时器控件 timer 定时器控件(timer)属性和事件 属性名称    说明 interval   事件发生频率,以毫秒为单位...enabled    是否定时引发时间 事件名称    说明 tick    定时发生事件 index变量定义和初始化不能写在tick事件处理程序,否则图片无法轮换显示 使用picturebox...控件窗体上显示图片 使用Time控件可以让程序每隔一定时间重复做一件事情 窗体有两种显示方法模式:模式窗体和非模式窗体

1.3K80

构建布局良好Windows程序

() 退出整个应用程序,关闭所有窗体 this.Close()  关闭当前窗体 都会触发FormClosed事件和FormClosing事件 带图片工具栏 属性名称     说明 displaystyle...DateTimePicker value:控件的当前日期 MaxDate:最大日期 MinDate:最小日期 分组框:Gropebox  text:关联文本 面板:panel 作为容器使用 工具:Visual...Studio"格式"菜单 按住"Ctrl键",选择多个控件 以第一个控件为基准 可以使用anchor(锚定控件) 固定控件窗体边缘距离 按住Ctrl键选择多个控件,再设置anchor属性,可以一次选中多个控件...使用dock(停靠控件) dock属性控件停靠在窗体边缘或填充窗体 当某个控件需要充满整个窗体时,设置控件dock属性是最快捷方式 SdI:比如记事本 Word等 mdi:多窗口应用程序 比如...属性设为父窗体 注意: 设置了MDI子窗体不能用SHowDialog() 建立子窗体窗口列表步骤 设置父窗体菜单控件mdiwindowlistItem属性选定为窗口菜单项

1.5K60

使用C#开发数据库应用程序

,否则,就返回-1 string Join(string separator,string[] value) 把数组value每个字符串用指定分隔符separator连接,返回连接后字符串...a.使用菜单条 Name 代码中菜单对象名称 Items 在菜单显示集合 Text 与菜单相关联文本 Name 窗体对象名称 Text 窗体标题栏显示文字...5-1:排列窗体控件 a.对齐 (1)选择你要对齐控件 (2)在VS菜单,选择“格式”-“对齐” b.使用Anchor (1)选择要锚定控件 (2)在"属性"窗口中,单击Anchor...锚定作用:设置控件对于窗体摸个边缘距离保持不变,也就是说窗体一起动态调整控件大小,这是每个控件都有的属性。...c.使用图片框、图像列表、计时器控件 图片属性 Image 图片框显示图像 SizeMode 指定如何处理图片位置和控件大小 图像列表属性 Images 存储在图像列表所有图像

5.8K30

【C#】DockPanelSuite DockState.Document 状态下子窗体控件不显示解决方案

DockPanelSuite 是 Winform 优秀布局控件,但是这次使用过程却出了个问题。...问题2:打开子窗体后关闭主窗体,再次打开主窗体(注意:子窗体并未关闭),这时候,子窗体所有控件不显示。...这个问题困扰了我很久,一直找不到解决方案,后来再跟同事说起这个 bug 时候忽然就想到了。 首先,子窗体控件不显示,但是关闭子窗体后再打开,控件是正常显示。...于是我就想到,是不是要在主窗体显示完毕后再打开子窗体,就不会有这个问题了呢? 我先将显示子窗体方法,从 Load 事件中移动到 Shown 事件,结果第一个问题解决了,第二个问题依然存在。...我确定,只有在 State = DockState.Document 时才会有这个 bug,我就在关闭主窗体时,将子窗体 State 属性改成了 DockState.DockLeft,事实证明有效果,

1.2K20

【C#】带等待窗体BackgroundWorker

接口 在DoWork事件可以访问一组bgwUI提供属性和方法更新等待窗体文本和进度,以及可以控制等待窗体【取消】按钮是否可见。...//bgwUI.CancelControlVisible = true;//设置取消任务控件可见性,默认该属性会根据WorkerSupportsCancellation设置,但仍可以自由设置...bgwUI重载了一个可传入IWaitForm实例构造函数,就是可以传入自定义等待窗体,使用无参构造函数的话,就使用默认等待窗体,即WaitForm DoWork事件可以直接使用bgwUI一组属性和方法...实现说明: 之所以在构造时就要传入等待窗体,而且不提供WaitForm这样属性让调用者随时能get/set等待窗体,是为了避免做一些蛋疼控制,因为这样的话,当设置bgwUI.BarVisible这些属性时候...,那么在事件中弹出模式窗体不会有正常表现,至于怎么个不正常,无法言表,自己体会。

1.7K30
领券