控件对象
通用属性
- 自动调整控件大小,以适应控件内容:Autosize
- alt快捷键:Accelerator
- RGB颜色:RGB(R,G,B)
- TabIndex :指定Tab 键顺序,最小为0,最大为父控件内控件数目-1。cycle属性中,0表示当在最后一个控件tab时跳转到所有控件的第一个控件,1表示在当前容器中的第一个。
窗体form(VBA)
动态创建:Public f1 As New Form1
属性
- 可见性:Form1.visible=true。show后才能设置
- 左坐标:Form1.scaleleft=50
- 上坐标:Form1.scaletop=50
- 宽:Form1.scalewidth
- 图标:showicon
- 锁定大小:Locked
- 自动调整大小:Autoscalemode=none
- 背景图片:Backgoundimage=image.fromfile("文件名") #放在bin,debug相对路径下,要后缀名
- 去掉背景:Me.Backgoundimage=nothing
- 边框样式:formborderstyle:none无边框,fixed固定大小的 ,sizable可变大小的(VSTO)
- 边框样式:borderstyle:0无边框、0有边框(vba)
- 边框姿色:bordercolor 有边框时才有效
- 最小化按钮 :Minimizebox
- 最大化按钮 :Maximizebox
- 是否在任务栏显示:Showintarkerbar
- 是否在窗体标题栏中显示图标 :Showicon
- 标题栏右边的菜单栏 :Controlbox
- 初始位置:Startposition
- 位于顶层:topmost
- 滚动条可见性:keepscrollbarsvisible:0无,1横,2纵,3 both
- 滚动条类型:scrollbars 0/1/2
- 滚动条垂直范围:Scrollheight
- 滚动条水平范围:Scrollwidth
- 垂直滚动条当前上边位置:ScrollTop
- 水平滚动条当前左边位置:Scrollleft
- drawbutter
- HelpContextID
- RightToLeft
- 鼠标图标:mouseicon
- 鼠标图标:mousepointer 内置样式
- 背景图片:picture
- 图片对齐方式:picturealigment
- 图片伸缩模式:picturesizemode
- 平铺图片:PictureTiling=true
- 模式:ShowModal:若为true,则需要关闭窗体后,后续代码才会继续运行。
- 指定对象的外观:SpecialEffect。0平面显示,通过边框、颜色来区别。默认值。1左边和顶边加亮显示,右边和底边带有阴影。2的顶边和左边带阴影,底边和右边加亮显示。3控件边缘呈凹入状态。6对象的底边和右边凸起。
- tag自定义的额外信息。
- 窗体上控件的提示信息:whatsthisbutton:用户可以单击 What's This 按钮,然后将鼠标指针移到窗体上的任何控件上,以获取该控件的帮助信息。
- 在 VBA 编辑器中打开要添加 What's This 按钮的窗体。
- 从“工具箱”窗格中选择“附加工具”,然后选择“ What's This 按钮”。
- 在窗体上单击并拖动鼠标以创建一个新的 What's This 按钮。
- 在“属性”窗格中,设置按钮的“名称”和“工具提示文本”。
- 在“单击”事件处理程序中,添加代码以提供有关该控件的帮助信息。
- 运行窗体并单击 What's This 按钮。将鼠标指针移动到控件上以获取帮助信息。
方法
- 加载:show 无模式显示本窗体
- 模态:Showdialog。有模式显示窗体。则在关闭该对话框之前,不执行 ShowDialog 方法后面的代码。
- 卸载:Unload
- 隐藏:hide
- 释放资源:dispose ,释放后不能再被使用
- 关闭窗体:Close。Close只是关闭而已,窗体还在,只是不显示了。只有在Dispose之后,才会彻底结束释放掉。
事件
- Scroll:当滚动条滚动时发生。包括三种情况:滚动条移动、点击滚动条上下的箭头按钮、点击滚动条和箭头之间的区域。
- Query_Unload:窗体关闭之前发生 。
- End :强制性的终止运行, 不调用任何事件或代码
- Unload:卸载当前窗体或控件,释放内存。在卸载窗体前,会发生 Query_Unload 事件过程,然后是 Form_Unload 事件过程。在其中任一过程中设置 cancel 参数为 True 可防止窗体被卸载。
- Load:将窗体加载到内存中时事件
- mouseup:鼠标松开时
- mousedown:鼠标按下时
- mousemove:鼠标移动时
- closing (VSTO):关闭事件:
Private Sub 数据录入设置_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
e.Cancel = True
Me.Hide()
End Sub
VSTO动态窗体
Sub 添加窗体()
Public myForm As Windows.Forms.Form
myForm = New Windows.Forms.Form
myForm.Show()
myForm.Text = "自动测评系统:作答"
myForm.Left = 100
myForm.Top = 100
myForm.Height = 900
myForm.Width = 1000
myForm.Name = "myform1"
myForm.ControlBox = False
myForm.FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed3D
End Sub
ListBox(VBA)
- 区域添加元素:ListBox1.RowSource = "产品表 !a1:a5"
- 数据添加元素:ListBox1.List = arr
- 添加单个元素:ListBox1.AddItem Sheet5.Cells(i,1)
- 选中项索引:Selectedindex
- 选中项:Text和Selecteditem
- 排序:Sorted=true
- 清除元素:Items.clear
VSTO中
- 垂直滚动条会自己增加
- 水平滚动条不会自己增加
- Listbox1.items.add(aaa)
- 引用:listbox(i) 从0开始
- 引用某个项目 ListBox1.List (i)
- 项目数 ListBox1.ListCount
- 项目索引号 ListBox1.ListIndex = 3
- ListBox1.ListIndex = -1是否有被选中的项目
- 设置焦点 listbox1.setfocus 选设置焦点再选择
- 项目是不是被选择ListBox1.Selected(0) = True/false 返回true或false
- 清除列表框 listbox2.clear
- 表中所有选的内容 listbox1.text
- 删除特定项目listbox1.removeitem 索引号
事件
Click
Itemcheck
Listbox1.Items.add(选项)
Listbox1.Items.insert(index,"选项")
BoundColumn 标识拥有多列的列表框中的数据来源 1 到列表框的列数(默认值: 1)
ColumnCount 列表框的显示列数
ColumnHeads 是否显示列表框的列标题行
ColumnWidths 多列的列表框中的各列宽度
ControlSource 数据源,即单元格地址
ControlTipText 当用户将鼠标指针放在列表框上但未按下时所显示的文本
HelpContextID 为控件指定自定义的帮助文件中的特定主题
帮助文件中主题的上下文 ID号码(默认值:0)
IMEMode 为列表框指定输入法编辑器 (IME) 的默认的运行时间模式。 0 到11(默认值 :0)
IntegralHeight 指定列表框是显示列表中全部文本行还是显示部分行
ListStyle 列表的外观
Locked 指定列表框能否被编辑
MatchEntry 表示列表框如何按用户键入的内容来搜索它的列表
MouseIcon 鼠标图案ICO格式
MousePointer 把鼠标放到列表框上时所显示鼠标指针的类型,99表示显示自定义的图案
MultiSelect 智能多选用2
fmMultiSelectSingle( 默认值 )
fmMultiSelectMulti fmMultiSelectExtended
SpecialEffect 指定列表框的外观(主要针对边框样式)
0、1、2、3、6(默认值:2
TabIndex 指定当前列表框在窗体Tab键顺序中的位置
从0到具有TabIndex属性的控件数减1之间
TabStop 指定当用户跳格到当前列表框时,列表框能否获得焦点。
Tag 列表框的批注。
Text 列表框中显示的文本
TextAlign 文本的对齐方式
TextColumn 当用户在列表框中选定一行时,通过此属性标识相应的列,将该列的值保存在Text属性中。
-1 到列表的列数之间的数值(默认值:-1)
Value 列表框中显示的文本,和Text属性同步
activeX列表框
添加元素
Private Sub ListBox1_GotFocus()
Dim i As Long
i = Sheet5.Cells(Rows.Count, 1).End(3).Row
Me.ListBox1.ListFillRange = "产品表!a1:a" & i
End Sub
Checkbox1
Unchecked
Checked
indeterminate部分选中
Checkbox1.checked=true/false VB中是0/1/2 未选,选,不可选
chk = New System.Windows.Forms.CheckBox
chk.Text = ""
chk.Top = chk_top
chk.Left = 40
chk.Width = 150
chk.Height = 30
chk_top += chk.Height + 10
动态
Dim chk as msforms.checkbox
Set chk=usm.designer.controls.add("forms.checkbox.1")
任务空格
Microsoft.office.tools.customtaskpanes.add
【任务窗格】指停靠边上的部分,Globals.ThisAddIn.下的对象,
Public 任务窗格
Public 用户控件 as new usercontrol
任务窗格=Globals.ThisAddIn.CustomTaskPanes.Add(用户控件, "测试任务窗格")
任务窗格.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight
Globals.ThisAddIn.任务窗格.Visible = true
Globals.ThisAddIn.任务窗格.Width = 400
System.Windows.Forms.Application.DoEvents() ’加此句才能起作用
Globals.ThisAddIn.myUsercontrol1.TextBox1.Focus()
checklistbox
- check:框有三种状态:选中,勾选,未选
- CheckOnClick True单击勾选;false双击勾选
- checkedListBox1.GetItemChecked(i);第i项条目是否被勾选
- checkedListBox1.SetItemChecked(i,true) i为下标,
- checkedListBox1.MultiColumn多列显示
- checkedListBox1.ColumnWitdh多列时,各列的列宽。只有在MultiColumn=true时才有意义
- checkedListBox1.SelectMode=None/One。None项不能被选中,也不能被勾选;One只有一个条目可以被选中(但勾选可以选多项)
- checkedListBox1.Sorted属性根据字母进行排序
- checkedListBox1.Items(0)项的标签名,下标从0开始
- checkedListBox1.Items(0)用来赋值
- checkedListBox1.Items.count
- checkedListBox1.Items.Add(“条目一”,true);新增项“条目一”,被勾选
- checkedListBox1.Items.RemoveAt(1) 移除条目
- checkedListBox1.Items.Insert(i,"条目n")
- checkedListBox1.Items.Clear清除所有条目
- checkedListBox1.SelectedItem被选中的项,不能赋值
- checkedListBox1.Selectedindex被选中的索引号
- checkedListBox1.SelectedItems选中的条目的集合(不是勾选)
选择改变时事件:SelectedIndexChanged
tab
选中页索引:tab.SelectedIndex
下标从0开始tb.TabPages(0).Text = "bbb"
Public tab As Windows.Forms.TabControl
Sub 添加多页()
Dim I,pagen
Pagen=2
tab = New Windows.Forms.TabControl
myForm.Controls.Add(tab) '添加到窗体窗口
tab.TabPages.Add("基本信息") '添加页
tab.TabPages(0).Name = "tabpage0"
For i = 2 To pagen
tab.TabPages.Add("第" & i & "部分")
Next i
tab.Left = 10
tab.Top = 10
tab.Height = 50
tab.Width =50
End Sub
循环tabpage
Dim a As Windows.Forms.TabPage
For Each a In tab.TabPages
a.AutoScroll = True
Next
Dim cong As Windows.Forms.Control
循环第一页中的控件
For Each cong In tab.TabPages(i).Controls
Next cong
TreeView1
- 添加节点:TreeView1.Nodes.Add(group1)
combobox组合框(VBA)
组合框包括文字输入框、下拉菜单两部分。用户可以自己输入,也可以从下拉菜单选择
- 添加元素:同listbox
- 删除:Removeitem 不能删除rowsourse设置的填充数据
- 排序:Sorted
- 项数:listcount
- 清除所有项:Clear
- 显示列标题:Columnheads。只在引用工作表数据源时才有效,而且数据源不能包括标题行。
- 列数:ColumnCount
- 选中项索引:ListIndex,没选取时为-1
- 下拉列表最大行数:ListRows
- 是否显示下拉按钮:ShowDropButtonWhen
- 下拉按钮类型:DropButtonStyle 四种类型:0,1,2,3
- 下拉列表列宽:可以用厘米、磅、英寸为单位。用分号+空格隔开。如商品.ColumnWidths = "70 磅;60 磅"
- Change 事件:更改选定项时发生。
- DropDown 事件:展开 ComboBox 时发生。
- click事件:单击项时发生
- DropButtonClick事件:点击下拉按钮时。
richtext
- Selectionfont
- Selectioncharroffset离基线距离
- Selectioncolor
- Selectionalignment 对齐方式012
- Selectionindent缩排
- Selectionrightindent
- Selectionhangingindent
- .paste粘贴剪贴板内容
- Savefile 文件路径和文件名[.文件类型] 0是rtf,1为txt
- Loadfile 格式一致
button
动态创建
- but = New Windows.Forms.Button
- tab.TabPages(0).Controls.Add(but)
- AddHandler but.Click , AddressOf 下一步点击事件
label
- textalign对齐方式(9宫9种方式)
- image图形
- imagealign图片对齐方式
动态创建标签:
Sub 添加指导语()
Public lab As Windows.Forms.Label '随机的标签控件
lab = New Windows.Forms.Label
tab.TabPages(0).Controls.Add(lab)
lab.Text = "指导语"
lab.Left = 10
lab.Top = 15
lab.Width = Gbox.Width / 2
lab.Height = 40
'lab.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
lab.AutoSize = False
lab.Font = New Drawing.Font("宋体", 20, Drawing.FontStyle.Bold)
lab.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
lab.TextAlign = Drawing.ContentAlignment.MiddleCenter ’对齐
tab.TabPages(0).Controls.Add(lab)
End Sub
不能调整行距,可用回车换行来实现
optionbutton(VBA)
value:是否被选中
groupbox
动态创建分组框:
Public Gbox As Windows.Forms.GroupBox
Gbox = New Windows.Forms.GroupBox
tab.TabPages(0).Controls.Add(Gbox)
Gbox.Height = 60
Gbox.Left = 10
Gbox.Top = bottom
'Gbox.BackColor =
Gbox.Name = "groupbox" & j '在后面用来排除是否所有题都已作答
Gbox.Controls.Add(lab) ‘添加到groupbox容器
ScrollBar(VBA)
ScrollBar 是可放置到窗体上的独立控件。
- 最小值:Min
- 最大值:Max
- 当前值:Value
- 单击箭头时改变量:SmallChange
- 单击轨道区域时改变量:LargeChange
- 方向:Orientation包括0自动,1垂直、2水平。
- 宽度:Width
- 滑块大小:ProportionalThumb 与滚动区成比例的还是固定的ture、false
- Scroll:在当前值的基础上,更改ScrollBar控件的值。
- SetFocus:将键盘焦点设置为ScrollBar控件。
- Move:移动ScrollBar控件到指定的位置。
- Delete:从用户界面中删除ScrollBar控件。
文本框textbox
- 获得焦点:Textbox1.focus() getfocus
- 获得按键keypress(按键并释放时触发,按钮值用e.keychar表示,可用asc(e.keychar)=13来判断按下的是不是回车)
- 用e.handled=true来取消按键
- lostfocus说明输入结束,可以进行判断
- passwordchar输入时替代显示的字符
- 最大长度maxlength
- 文本长度textlength
- 可多行multiline
- Scrollbasrs 无,水平,垂直,再者(需要multiline才会有滚动条,需要wordwarp=false不自动换行,才会有水平滚动条)
- 待定文本的起始位Selectionstart=0
- 文本长度Selectionlength=4
- Selectedtext="XXX" 选中的文本内容,没有选中内容,则是指光标位置
- readonly只读,不可修改
- Scrollbars滚动条
- Multiline多行
- 获取焦点:setfocus
- Text1.selstart光标开始位置
- Text1.sellength选择长度
- Text1.font=”隶书”/“仿宋” /楷体”
- Text1.fontitalic=TRUE
- Text1.fontBOLD=TRUE
- Text1.fontUNDERLINE=TRUE
- Text1.mxlength=1最大长度
动态创建:
txt = New Windows.Forms.TextBox
txt.Left = Gbox.Width / 2 + 50
txt.Top = 20
txt.Width = 200
txt.Height = 40
txt.Font = New Drawing.Font("宋体", 12)
'AddHandler txt.TextChanged, AddressOf 操作事件
tugglebutton
Checked
option
动态创建:
Public opt As Windows.Forms.RadioButton
For i = 1 To optn
opt = New Windows.Forms.RadioButton
Gbox.Controls.Add(opt) ’添加到容器
opt.Text = i
opt.Left = 50
opt.Top = 15