VB窗体控件学习
- 格式:doc
- 大小:111.00 KB
- 文档页数:10
VB窗体控件学习VB 控件listbox详细用法今天刚看到的一个很不错的代码列表框的特点是:列表框中的项目是通过程序插入到其中的,用户无法向清单中输入数据,当选择其中的项目,并在用户单击一个按钮或者执行某个操作时,由应用程序完成对指定项目的具体操作。
下面这个例子充分说明了列表框的这个特点,并介绍了列表框(ListBox)的常用属性。
Option Explicit' List1、List2 列表框' LefttoRightCmd 移动所选项目到另一个列表框(左到右)' RighttoLeftCmd 移动所选项目到另一个列表框(右到左)' List1MoveCmd 删除列表框List1中所选项目' List2MoveCmd 删除列表框List2中所选项目' List1AddCmd 给列表框List1增加新项目' List2AddCmd 给列表框List2增加新项目' List1ClearCmd 清空列表框List1' List2ClearCmd 清空列表框List2'--------------------------------------'--------------------------------------'————名称————属性设置———' List1列表框Sorted属性设为“False”' List2列表框Sorted属性设为“True”' MultiSelect属性设置为2' 即List2控件中的项目总是排序的'--------------------------------------Private Sub Form_Load()'装载窗体时,给列表中的元素赋值List1.AddItem "China"List1.AddItem "America"List1.AddItem "Japan"List2.AddItem "Soccer"List2.AddItem "Tennis"List2.AddItem "Basketball"End SubPrivate Sub LefttoRightCmd_Click()'将左边列表中所选元素移动到右边列表中If List1.ListIndex >= 0 Then'在右边列表中增加新元素List2.AddItem List1.Text'删除左边列表中的所选元素List1.RemoveItem List1.ListIndexEnd IfEnd SubPrivate Sub List1AddCmd_Click()Dim ListItem As String'ListItem = InputBox("在列表中输入新项目")'向列表中加入新项目If Trim(ListItem) <> "" Then'Trim()作用是清除ListItem字符串内的空格List1.AddItem ListItemEnd IfEnd SubPrivate Sub List1ClearCmd_Click()'清空列表List1.ClearEnd SubPrivate Sub List1MoveCmd_Click()Dim i As Integer'判断列表框是否只有一个项目被选中If List1.SelCount = 1 ThenList1.RemoveItem List1.ListIndexElseIf List1.ListCount > 1 Then'删除列表框中的所选中的多个项目For i = List1.ListCount - 1 To 0 Step -1'ListCount返回列表框中的项目总数'ListCount-1是列表框中最后一个项目的索引号'判断该项目是否被选中,Selected()返回布尔值If List1.Selected(i) Then'删除索引号为i的项目List1.RemoveItem iEnd IfNextEnd IfEnd SubPrivate Sub List2AddCmd_Click()'定义变量,以接收输入的字符串Dim ListItem As StringListItem = InputBox("在列表中输入新项目")If Trim(ListItem) <> "" Then'将字符串增加到列表中List2.AddItem ListItemEnd IfEnd SubPrivate Sub List2ClearCmd_Click()'清空列表List2.ClearEnd SubPrivate Sub List2MoveCmd_Click()Dim i As Integer'判断所选元素是否只有一个If List2.SelCount = 1 ThenList2.RemoveItem List2.ListIndex'如果所选元素大于1,则按下列操作进行ElseIf List2.ListCount > 1 ThenFor i = List2.ListCount - 1 To 0 Step -1If List2.Selected(i) ThenList2.RemoveItem iEnd IfNext iEnd IfEnd SubPrivate Sub RighttoLeftCmd_Click()Dim i As Integer'判断选中的元素有几个If List2.SelCount = 1 ThenList1.AddItem List2.TextList2.RemoveItem List2.ListIndex'当选中的元素大于一个时ElseIf List2.SelCount > 1 ThenFor i = List2.ListCount - 1 To 0 Step -1'如果该元素被选中,则将其从右边移至左边If List2.Selected(i) ThenList1.AddItem List2.List(i)List2.RemoveItem iEnd IfNext iEnd IfEnd Sub(源程序下载)这个例子包含一个窗体,窗体中有两个列表框(List1、List2)和八个按钮,界面如下:窗体(FormListBox)我们首先新建一个标准的EXE工程,添加一个窗体,并把列表框和按钮控件添加到窗体上。
各按钮控件的名称如下表:按钮名称名称属性按钮名称名称属性删除所选项目(左)List1movecmd删除所选项目(右)List2movecmd增加新项目(左)List1addcmd增加新项目(右)List2addcmd清除弄表(左)List1clearcmd清除列表(右)List2clearcmd右箭头lefttorightcmd 左箭头Righttoleftcmd' List1列表框Sorted属性设为“False”' List2列表框Sorted属性设为“True”' MultiSelect 属性设置为2 ' 即List2控件中的项目总是排序的在属性窗口中,将List1列表框Sorted属性设为“False”;List2列表框Sorted属性设为“True”,MultiSelect属性设置为2,即List2控件中的项目总是排序的。
下一步我们为各控件添加相应的程序。
其中:List1.AddItem "China" 是将“China”添加到列表框中。
List1.ListIndex 返回的是列表框List1中当前选择项目的索引号码。
List1.ListCount 返回的是列表框List1中项目总数。
List1.ListCount - 1 返回列表框List1中最后一个项目的索引号。
List1.Selected() 返回的是一个项目的选择状态,返回的是布尔值。
vb 窗体划五角星代码呵呵一个不错的一个代码执行代码,五角星算法。
看看下面代码一个类模块,和一个调用代码如下调用:Private Sub Command1_Click()Dim clas As New Class1Set clas.Frm = Meclas.X = Rnd * Me.ScaleWidthclas.Y = Rnd * Me.ScaleHeightclas.star 500End Sub类模块:Private mX As SinglePrivate mY As SinglePrivate mFrm As ObjectPublic Property Set Frm(ByVal vData As Object) Set mFrm = vDataEnd PropertyPublic Property Get Frm() As ObjectSet Frm = mFrmEnd PropertyPublic Property Let X(ByVal vData As Single) mX = vDataEnd PropertyPublic Property Get X() As SingleX = mXEnd PropertyPublic Property Let Y(ByVal vData As Single)mY = vDataEnd PropertyPublic Property Get Y() As SingleY = mYEnd PropertyPublic Sub star(ByVal n As Single)Const pi = 3.14159Randomizem = Int(Rnd * 16)colr = QBColor(m)mFrm.Line (X, Y)-Step(n * Sin(pi / 10), -n * Cos(pi / 10)), colrmFrm.Line -Step(n * Sin(pi / 10), n * Cos(pi / 10)), colrmFrm.Line -Step(-n * Cos(2 * pi / 10), -n * Sin(2 * pi / 10)), colrmFrm.Line -Step(n, 0), colrmFrm.Line -Step(-n * Cos(2 * pi / 10), n * Sin(2 * pi / 10)), colrEnd SubVB 控件移动方法大家添加这几个控件,然后双击控件就会作对其,右对齐等等操作!看看下面代码Private Sub Form_Click()Static n As Integer, y As Boolean '默认值n=0,y=falseDim cnt As Control '声明对象变量cnt为通用控件y = Not y '第二次与第一次相反,单数为真,双数为假Set cnt = Me.Controls(n)If y Thencnt.Left = cnt.Tag '控件不移动在原处n = n + 1Elsecnt.Left = 0 '控件移到窗体最左边End Ifn = n Mod 3End SubPrivate Sub Form_Load()For Each obj In Me.Controls '将各控件的left属性保存在tag属性中obj.Tag = obj.LeftNextEnd SubVB 创建移动控件按钮大家先看下图片,按钮大家单击窗体按钮就会跳到鼠标单击的地方!很不错鼠标点哪里按钮就到哪里!Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim cmd As CommandButtonSet cmd = Command1cmd.Top = Ycmd.Left = XEnd SubVB 最简单创建窗体很简单的一个可视化操作,新建窗体然后加一个控件放入本事件然后单击,就会出现又一个窗体。