导航:首页 > 手机软件 > VB自动控件软件

VB自动控件软件

发布时间:2022-07-16 20:39:05

㈠ vb 用户控件

什么是ActiveX控件?
一个简单的回答就是:拥有图形界面的类。你可能曾经用过类来编程,那是一种实现代码重用的的好方法。当然,它也提供了很多其它的好处,这儿并不打算一一列举出来。ActiveX 控件将这个概念近一步的深化了,能够让你编写一个窗口小部件(widget),然后把它打包起来,在以后的程序里用到它,或者作为特定的问题的解决方法,给程序员提供更简便的编程方法。 用ActiveX你可以建造“复合式”控件,由其它的几种控件组合而成。也就是说,在ActiveX控件中你不但可以使用VB中诸如文本框,图片框之类的普通控件,你还可以用其它的ActiveX控件来构成你自己的控件,实现你想要的功能,并把它打包以背后用。
ActiveX控件的组成
一个ActiveX控件由它的一些成员组成:属性,方法以及事件。它们之间有什么样的逻辑关联呢?还是用我们的身体来做个例子吧,将身体就看成一个ActiveX控件。 这个控件首先应该有一些属性,比如:眼是否睁开属性。显然,这个属性值应该有两种情况:开或则闭。使用的时候能够告诉“身体控件”让这个属性换一个新的值,以决定睁眼或者闭眼,或者得到当前的属性值,以知道目前的身体状况。
方法是控件中过程和函数的统称,同其它任何的VB函数和过程并没有什么不同,你同样可以向它们传递参数,并返回想要的值。假设有一个类描叙了身体这个对象,它应该有“Look”这个方法,并且应该能接受“Direction”这个参数,那么,这个方法就应该写成这样:
Public Sub Look(Direction As Integer)
Select Case Direction
Case 0
'向左看
Case 1
'向右看
Case 2
'向前看
Case 3
'向后看
End Select
End Sub

若要求返回值,我们就举一个“读”的例子吧。这时你必须把“Read”这个方法声明成函数而不是过程 :
Public Function Read() As String
'读的一些操作
Read = "Hello from the World"
End Function
在身体控件中,我们用的还是“Look”这个方法。当调用这个方法的时候,就是指定眼睛应该去“看”了。同样,我们还指定了另外一个方法,“Read”。这一个方法将用来返回看到的东西。
“方法”这个概念是不是很简单呢?如果你还不能够理解,也可以这样来想:你的控件就像是一台机器,你拨动控制开关(输入参数),转动把手(调用方法),然后机器的灯闪动,运行起来(执行方法),最后从机器里蹦出一些东西(返回值),就是这样了。但等等……如果你的机器想告诉你什么事情,它该怎么做呢?这时就该是“事件”出场了。
最后,身体控件还会提供一个“眨眼”的事件,用来在进行眨眼这个动作的时候,通知开发者发生了这个事件,但是不必知道身体内部的工作方式和为什么这个事件会被触发。
来动手吧,作一个控件。不要以为作一个控件是非常难的事,虽然它和一般应用程序的编写是有一点不同的地方。在上面我们已经知道,一个ActiveX控件是由属性,方法和事件组成的,我们先看看如何在程序中实现这些东西,然后再把它们联系起来,组合成一个有机的整体。属性最简单的形式是用public声明的公用变量。例如,如果把下面这段代码放到你的控件工程的声明部分:
Public EyeOpen As Boolean
这样,你就可以在后边的代码中使用这个属性了。但是,这种属性所能够做的事实在太少了。它几乎是不能够正常工作的。因为在程序的设计期间,属性值的任何变化都必须通知Visual Basic,以便把控件实例标记为需要保存。而又因为属性值可能显示在多个地方,因此当属性值发生改变时必须通知开发环境,以便使它能够同步显示“属性”窗口、“属性页”对话框等位置上的属性值。
上面说的是不是有点难理解呢?要是不明白说的什么,不要急,你先打开一个工程,添加一个控件,试着改改这个控件的一些属性,在来看看上面的话,是不是明白了呢?我们现在的任务,就是要作一个这样的控件啊。由此可以看出,控件编程和一般的编程还是有一些区别的。那么,该怎么实现呢?这要使用到属性过程。
当一个属性值被引用或者设置的时候,属性过程自动的被调用。下面我们就来添加一个这样的属性:打开代码窗口,再点击“工具”菜单,选择“添加过程”子菜单,弹出的对话框中,填入过程名“EyeOpen”,然后再把类型设置为“属性”。当你点了确定之后,VB自动的为你创建了一个属性过程的原型,代码会被添加到代码窗口中:
Public Property Get EyeOpen() As Variant
End Property
Public Property Let EyeOpen(ByVal vNewValue As Variant)
End Property
剩下的你要做的,是写入属性处理代码,把这个骨架填满。
你可以看到,VB实际上为你写了两个,“Get”和“Let”属性过程,有点疑惑吗?实际上很简单:“Get”是当属性值被引用的时候调用的过程,而“Let”则是当属性值被写入的时候调用的。(事实上还有第三种类型的过程,我们将在后面遇到,这里先提个醒)要让一个属性过程能够正确的工作,必须还要有一个变量来保存真正的属性值。把下面这一行添加到声明部分:
Private m_EyeOpen As Boolean
注意到那个'm_'前缀,一般是放在用户控件的内部变量之前。 现在该是填充过程框架的时候了。先看看Let过程,这个过程带有一个参数:缺省的是名字是vNewValue,variant类型。但我们想要一个布尔类型的变量而不是variant,因为眼睛在我们的模型中只有开和闭两种状态。所以把这个参数改成“New_EyeOpen As Boolean”。如果你想要这个属性作为只读属性出现,那么就不要再改动Let过程,让过程体空在那儿。否则,当想要设置这个属性值的时候,应该执行这样的代码:
Public Property Let EyeOpen(New_EyeOpen As Boolean)
m_EyeOpen = New_EyeOpen
PropertyChanged "EyeOpen"
'后面还可以写一些相关的代码,对属性的设置做出反应
End Property
当要在程序中写入属性值的时候,就会调用这个函数,先把属性值保存在一个私有变量里面,然后执行PropertyChanged这个内部方法,它用来告诉Visual Basic属性值有了变化,并触发一个WriteProperties事件。关于这一点的具体的内容,在后面还会提到。
而Get过程更为简单!它和标准函数没有两样:
Public Property Get EyeOpen() As Boolean
EyeOpen = m_EyeOpen
End Property
做完这些就完了吗?不!忘了前面说的属性值是需要保存的,因此当编程会话发生转换的时候,它们能够保持下来。那么怎么样来保存和取出属性值呢?这时就要用到PropertyBag对象了。
使用PropertyBag
PropertyBag对象包含两个方法:一个用来读出,一个用来写入。前面提到了,当任何的属性发生变化的时候,会触发控件的WriteProperties事件。这时就可以把属性值保存在属性包中了。下面的代码实现这个功能:
PropBag.WriteProperty "EyeOpen", m_EyeOpen, True
PropBag是PropertyBag对象的一个实例。WriteProperty函数包含三个参数,第一格是属性名称,后面的是要保存的值,最后的参数是在无用户定义属性的情况下,将写入的默认值。把这个和ReadPropertiy方法的默认值设置结合起来,就可以为属性值设置缺省值了。如果属性值和缺省值相同,那么属性值就不会真正的被保存。当要读出的时候,ReadProperty函数发现在属性包中没有内容,就会返回缺省值。这样可以节省一些系统开销。要注意的是:必须将一个成员属性的名称作为字符串传递。当你将控件作国际化处理时,不要改变这一字符串的名称,它必须与该属性的申明的名称相匹配。
当控件被重启动后,你必须重载如所有保存的属性值。当每次读取PropertyBag中的数据时, ReadProperties事件被触发。在这个事件的处理过程中,你要做的任务就是载入保存在属性包中的属性值,调用ReadProperty函数来实现这一点。要注意的是:在读和写两个函数中的缺省值设置要一样。例如:
m_EyeOpen = PropBag.ReadProperty("EyeOpen", True)
一个同步缺省值的方法是为其设置常量,在需要的时候直接使用常量来代替具体的值,这样就不用担心出问题了。例如:
Private Const m_def_EyeOpen = True
“m_def_”前缀通常放在缺省值常量的前面。
当控件被启动的时候,一般要为属性设置初始值。这一般是在usercontrol的InitProperties 事件中实现的。这个事件发生于控件实例首次实体化时,也就是把控件实例放置到窗体上的时候,它在以后的整个设计期间里都不会再发生。Usercontrol还有一个Initialize事件,它是每次控件实例被创建时触发的。显然,初始化过程如果放在Initialize事件中就太过频繁了,没有这个必要。设计 ActiveX 控件需要根本性地转变一些观念。需要响应的关键事件是往往不同于一般的程序设计。下面是我们想要实现的代码:
Private Sub UserControl_InitProperties()
m_EyeOpen = m_def_EyeOpen
End Sub
好,到现在关于属性的部分基本就结束了,下一篇中我们要讲到的是另外的一个成员:方法。
事件是用来通知使用控件的程序员,某件事情发生了,好让程序员可以相应的处理。事件在VB编程中比比皆是,例如,当鼠标点击控件时会发生Click事件,文本框内容改变了会发生Change事件,等等。但这儿要讲的不同于这些东西,也不同于InitProperties, ReadProperties, WriteProperties前面提到过的事件,那些是系统已经定义好了的。我们要做的是定义自己的事件。自定义的事件必须声明在模块的声明部分,然后就能够在任何地方任何时候,只要你觉得应该有事件了,就可以触发它。例如,一个代表眨眼的事件应该这样声明:
Public Event Blink()
在括号中,你可以放置任何你想要传递给事件的参数。对于一个Click事件,这个参数可能鼠标点击时x和y坐标。而在这里,因为只是眨眼,就用不到额外的参数了。
触发事件,得使用RaiseEvent方法。对于我们的眨眼事件,我们把它和一个计时器联系起来,这样它就能够时不时的眨眼了:
Private Sub Blinker_Timer()
RaiseEvent Blink
End Sub
就这样,一个事件就完成了,没有任何技巧或者秘密可言。现在留给程序原作的,只要编写相应的事件处理过程就行了,就像下面这样:
Private Sub BodyControl1_Blink()
Debug.Print "嘻嘻,我又眨眼了!"
End Sub
到这儿,大部分关于ActiveX控件的基本问题都讲了。后面的将是一些更高级的内容,包括图片和字体属性,“关于”对话框,运行时之读属性等等。在继续之前,再看看前面的内容,好好的在理解一下。好了吗?OK,现在开始更为激动的历程。
********************************************************************************************************************************
首先,我们先来看看对于属性,还有什么可以挖掘的东西,比如颜色或者图片之类的东西。
高级属性设计
色彩值被存贮在长整形变量中,但是如果你只是定义一个长整形变量,显然是不能够得到像vb中所提供的那个颜色选单:
这看起来很复杂,实际上做起来却一点也不难:所有你要做的只是把属性声明为OLE_COLOR类型,就像下面这段代码所作的那样:
Public Property Get BackColor() As OLE_COLOR
BackColor = UserControl.BackColor
End Property
Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR)
UserControl.BackColor = New_BackColor
PropertyChanged "BackColor"
End Property
记得前面曾经提过除了Let,Get,还有第三种属性过程吗?现在揭开迷底:它就是Set属性过程,当要给对象变量赋值的时候,是不能用Let,而必须用Set来代替。这是因为保存在控件内部的对象变量,保存的并不是对象的拷贝,而只是对象的引用,也就是一个内存地址了。为了同一般变量的复制保存区别开来,VB引入了Set属性过程。
或许你可能知道:字体和图片就是保存在对象中的,而且,它们都拥有各自的的对话框来设置相关属性。要用到这些对话框,所有我们要作的就是把图片或者字体申声明为Picture或者Font对象类型,并且为其设置Set属性过程。
Public Property Get Font() As Font
Set Font = lblText.Font
End Property
Public Property Set Font(ByVal New_Font As Font)
Set lblText.Font = New_Font
PropertyChanged "Font"
End Property
看看上面的代码,你是不是在想:也没有什么很难的啊。确实,就是这样简单啊。下面,我们来看看如何为控键建立只读属性。这也是在控件的设计中用的比较多的一个内容。
只读属性
最简单的方法,就是不要在Let/Set属性过程中加入任何东西。但通常,这并不能满足要求,有时,你可能需要一个运行时只读的属性。所谓运行时——和设计时相对应,是指控件最终在一个开发完成的程序中运行,而设计时指的是控件被使用在开发程序的过程中。
要实现运行时只读,要用到Usercontrol的AmbientProperties对象。它提供了很多关于控件容器的属性。中有一个UserMode属性,当控件处在运行时状态时,UserMode值为真。通过在Let/Get过程中提供对UserMode的检测,就可以很容易的实现运行是只读属性了:
Public Property Get MultiLine() As Boolean
MultiLine = m_MultiLine
End Property
Public Property Let MultiLine(ByVal New_MultiLine As Boolean)
If Ambient.UserMode Then
Err.Raise 382
Exit Sub
EndIf
m_MultiLine = New_MultiLine
PropertyChanged "MultiLine"
End Property
这段代码保护属性只能够在设计时被修改,如果在运行时试图改变它, 就会产生“Property is read-only at run-time”错误。
和AmbientProperties对象相近的还有Extender对象。对于Extender对象,在开始编写控件前有必要好好的了解。Extender对象是一个晚期绑定的借口,开发员可以通过它访问由控件容器(而不是控件本身)维护和控制的控件属性。它提供了一些属性,像Name,Enable,Left,Top,Height,Width等等,这些大多出现在一般的控件中,在编写控件属性前,应该看看是否已经存在在Extender对象中,一方面可以避免重复工作,另一方面也更有效率。
但是使用Extender对象还存在一些问题:并不是所有的容器都支持访问相同的Extender属性。所以选用Extender对象是必须十分小心,否这做出的控件只能为特定的容器所使用。但如果你只是为VB开发控件,那就不用有这些顾虑了,尽量的用吧。
还有一点要注意的是,Extender对象不能在usercontrol的initialize事件中访问它,但是可以在initProperties和ReadProperties事件中使用。
枚举
在控件中设置属性时,使用枚举是一种很常见的的方式。它提供了一个下拉列表和若干选项让你选择。这样方便了用户的操作,又不用考虑过多的兼容性和错误处理问题,简化了属性设置,而且更加安全。
首先,必须建立一个枚举结构,放在声明部分。然后给出一系列的常量和对应的字符串。常量值可以零,或者是任何比它前面一个常量值大的整数。如果没有给出常量,那么VB自动为其赋值,第一个未指定的赋值为零,其它的值为前面一个数加一:
Public Enum eDirection
Left
Right = 1
Up
Down
End Enum
要实现枚举属性,必须创建一个带有Let和Get属性过程的标准属性。这里的技巧是将属性的类型声明为给出的枚举类型:
Public Property Get Direction() As eDirection
Direction = m_Direction
End Property
Public Property Let Direction(ByVal New_Direction As eDirection)
m_Direction = New_Direction
PropertyChanged "Direction"
End Property
唯一要注意的是,只能够在设计时修改属性列表,而不允许在运行时这么做。其它的,像读,写,保存和检索,都和使用标准属性是一样的。
这就是所有的技巧了。难以置信的简单,是吗?你的控件是不是看起来更为专业了呢?
Usercontrol对象
用 Visual Basic 所创建的 ActiveX 控件总是由 UserControl 对象加上选中放到 UserControl 上的任何控件(称为子控件或则组成控件)所组成。就象 Visual Basic 窗体一样,UserControl 对象具有代码模块以及可视化的设计器。将组成控件放到 UserControl 对象的设计器上,就象把控件放到窗体上一样。 在窗体上放置 ActiveX 控件的实例时,就创建了 UserControl 对象,以及放在 UserControl 设计器上的所有子控件的实例。这些对象都被封装在控件中。
UserControl 对象有自己的属性、方法和事件。对于一些属性,像BorderStyle,BackColor等等,与其自己写代码来实现 BackColor 属性,不如就直接使用UserControl对象的。这就意味着 ActiveX 控件的 BackColor 属性只需要简单地调用 UserControl 对象的 BackColor 属性就行了。同样地,也可以在UserControl 对象现有的 Click 事件的基础上设计您的控件的 Click 事件。
事实上在前面的内容中,我们时时都在和这个对象打交道,但是它有一些特别的东西,是应该值的多一些注意的。它的大部分属性应该在控件的设计时来完成设置。在这儿我解释一些比较晦涩难懂得属性的含义,还有一些一望既知,就不多费口舌了。
Alignable属性,当被设置成真的时候,VB将自动为控件添加一个新的属性:align。这样就能够像放置工具条那样安排控件在容器中的位置,而且这还意味着你的控件能够被放置在MDI程序中。
CanGetFocus属性,能够决定用户控件是否能够在运行时获得焦点。当要创建一个图形控件,或者像Timer那样在运行是不可见的控件时,就要设置这个值为False。要注意的是:只要控件至少包含一个设置为能够接收焦点的子控件,CanGetFocus 属性就不能设置为 False。如果 CanGetFocus 设置为 False,则其所有的子控件都不能设置为接收焦点。
ControlContainer属性定义一个控件是否能够像frames或者PictureBoxes控件那样作为控件容器包含其它的控件。
DefaultCancel 属性可以为控件添加Default和 Cancel属性。在添加 Default 和 Cancel 属性后,控件就可充当标准命令按钮。也就是说当Default被设为Ture后,按下回车键会触发控件的click事件,而当Cancel属性被设为Ture时,Esc键按下也会触发click事件。
你可以通过检查AmbientProperties对象的DisplayAsDefault属性来知道控件是不是缺省控件。
InvisibleAtRuntime能够让你建立像Timer之类的控件,在运行的时候是不可见的。
最后,ToolboxBitmap 属性用来指定放在VB工具箱上的图标的。微软建议的大小是32x32,但是实践证明23x23或24x24工作起来更好,32x32是被缩放到那么大了再显示出来的。
属性的属性
说起来有点绕口,也有点费解,是吗?。VB允许为控件的每个成员设置属性。这里面包含了一些较高级的内容,能够让你建造更为专业化的控件。在菜单栏中点击工具|过程属性,会出现下面的对话框:
你可以在描叙框内输入一段对控件的说明,在帮助上下文标识符内输入一个帮助的关联ID号,将你的控件与一个帮助文件关联起来,这样当点了属性后再按F1键就可以给出这个属性的帮助内容。

利用“在属性浏览其中使用本页”字段,可以给控件的定制属性页分配选定的号码。这样当用户从VB的属性浏览器中选择该成员时,VB将直接线是属性页。 “属性分类”字段能够让属性在VB的属性浏览器的“按分类序”模式中出现在特定的类别下。这些类别包括外观,字体,位置,杂项等等,只要选择一项就行了。“隐藏该成员”可以让属性不在属性浏览器中显示出来,这对于一些不想让用户看到得公有成员有用,但是要记住,它只是隐藏而不是不许被使用。而利用“在属性浏览器中不显示”可以在控件的设计时(而不是在运行时)把属性从属性浏览器中去掉。作为一般的原则,任何用ReadProperties和WriteProperties实现的永久的属性,都应当被属性浏览器显示出来,反之,任何非永久性的属性就不应被显露出来。
“缺省用户界面”用来设置控键的缺省属性和方法。比如,因为Caption属性是Lable控键的缺省属性,那么就可以对代码进行一些简化,把
Label1.Caption = "Hello"
可以简写为:
Label1 = "Hello"
最后是关于数据绑定的部分。在VB中,数据库的应用是很常见的。利用MS的数据访问功能,可以很容易的把控件属性和数据库的字段联系起来。当选择了“属性为数据绑定”和“绑定属性到数据字段”两个复选框后,该属性就可以以标准绑定控键的方式运行,这意味着你可以在为该属性选择数据库控件和字段名称。
最后的话
到这儿,几乎大部分和用户控件有关的内容都讲完了。你现在就可以开始为自己的程序定制合适的控件,还可以让别人分享你的成果。虽然内容不是很多,但要完全吃透也不是件容易的事。所以,多看多练还是必要的,学无止境嘛。
当然,没有十全十美的东西,对于ActiveX控件也是这样的。合理的使用用户控件是必须要注意的事情。ActiveX控件很容易就会变得很复杂,一不小心的话,你所付出的会远远多于你所得到的。
如果你只是想要一个带有属性和方法的对象,那么类或许是更好的选择。用户控件与应用程序间相对复杂的接口,会占用较多的资源。而在编程方面,控件也要比类复杂一些。但是如果你要求属性,方法和事件实现永久的数据存贮,后者要在程序的外部实现组件更新,那么就要用到用户控件了。总之,不要以为这是一件容易的事。虽然我在这儿讲得很简单,但是对一个完整的用户控件的设计,编写,以及测试和调试所作的工作,绝对不会比一个一般的VB应用程序来的少。

㈡ VB6.0编程软件简介

VB 就是 Visual Basic 的意思,是一种常用的编程开发工具。它的基础是编程语言Basic ,Visual Basic 简单点来说就是微软为了更好的让人们学习编程,应用上 Basic 开发语言的一套工具,简称就是 VB。VB 的面世使原本极其复杂困难的编程、软件开发的工作变得简单。最初的编程工作都是依靠全套的代码去进行的,工程量极大。Microsoft 就是看准了这个人们渴求快速发展软件开发行业的商机,利用自己的技术实力研发出 VB 这么一套完善的编程工具。VB 把过往的纯代码编程过度到可视化编程,将一些经常要使用到的功能以一个个的控件的形式出现,例如 Label(标签)、TextBox(文本框)等等的。他们在以前的编程工作中需要在使用时重复多次的输入同样的代码去实现这个功能,而这些代码去不是小工程,耗费了很大的人力物力和很多的时间。所以有了 VB 之后,编程的工作也就可以普及啦,可以免去了机械的重复的代码的输入,又可以一面编辑核心功能一面进行界面优化美化,一劳多得啊。[1]
VB 是 Basic 语言软件开发者的首选编译器,是学习 Basic 语言编程必须要接触而且是经常接触的一款整合型技术编译器。编辑本段语言特性VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。VB使用引用计数的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。编辑本段术语在讨论 Visual Basic(不包含 .NET)时,经常可以听到以下这些术语,因此掌握这些术语的基本理解对初学者十分有帮助。控件:简单的说,控件就是构成或者说建造 Visual Basic 应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等等……事件:由用户或操作系统引发的动作,例如击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端口接收数据。方法:嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开记录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。物件:一个控件、窗体等都可被看作一个物件。过程:为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。属性:属性是组成用户界面的各对象的性质的具体描述。例如上述“物件”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的属性。属性决定物件的外观,有时也决定物件的行为。物件的属性绝大部分是VB中已经事先定义好的,但也有的属性是需要在应用过程中才去定义的。属性即可为物件提供数据,也能从物件取回信息。·窗体的常用属性现在,我列举出了一些窗体的常用属性,请你对它们先进行一下感性认识。
名称是窗体的标识名,代码中称它为Name。BackColor:设置窗体背景颜色。BorderStyle:设置窗体的边框风格。(见图一)要请注意的是,属性值为1 - Fixed Single 与 3 - Fixed Dialog 时,窗体外观相同,但功能却不同。当属性为1 - Fixed Single 时,MaxButton与MinButton这两个属性可以起作用。MaxButton为True时窗体上具有了最大化按钮。MinButton为True时最小化按钮也有效了。而当属性为3 - Fixed Dialog时,MaxButton与MinButton属性不起作用。此时MaxButton与MinButton为True,但最大化、最小化按钮均为出现。(图一)Caption:设置窗体标题栏上的文字。ControlBox:设置窗体标题栏上是否具有控制菜单栏及按钮。Enabled:决定运行时窗体是否响应用户事件。在程序运行时可以看到改变 Enabled属性的效果。此时Enabled已设为False,所以点击按钮不会有反应。Height:设置窗体的高度。Width:设置窗体的宽度。Left:设置程序运行时窗体的水平位置Top:设置程序运行时窗体的垂直位置Visible:设置程序运行时窗体是否可见。当Visible为False时,窗体是不可见的。将值改为为True。运行时窗体就是可见的了。WindowsState:设置程序运行中窗体的最小化、最大化和原形这三种状态。程序运行时的最小化状态。Icon:设置窗体标题栏上的图标。Picture:给窗体配上漂亮的位图。最后要说明的是:窗体的Name和Caption属性,虽然缺省值相同,都是Form1,但实际意义却不一样。Caption指的窗体标题栏上的文字,Name指这个窗体的对象名,千万不能混淆。

㈢ 有哪些打包工具可以把VB里的控件打包了,安装时就自动注册那些控件呢

VB自带的Package & Deployment 向导就相当不错。
(当然你不能只装一个VB简化版)
路径一般在VB98\Wizards\PDWizard中。
打包时全选就行了。

㈣ VB如何实现打开软件最大化且控件随之变化

创建一个PictureBox,改变它的变量Align,然后在它的Resize事件里输代码就行!如果用Form_Resize,那么最大化时Resiza并未触发。

㈤ VB中怎样编一个自动按键盘的软件~

参考了前辈们的文章,得到了sendinput的一个小实例,先学习了:

这个是真正的模拟按键,跟sendkeys完全不同哦~~~注意在按下form中的按钮后,迅速切换到自己的程序中测试。

'form中放一个command1和一个timer,为了方便演示,建议放一个text1在form中

Const VK_A = 65
Const KEYEVENTF_KEYUP = &H2
Const INPUT_MOUSE = 0
Const INPUT_KEYBOARD = 1
Const INPUT_HARDWARE = 2
Private Type MOUSEINPUT
dx As Long
dy As Long
mouseData As Long
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type
Private Type KEYBDINPUT
wVk As Integer
wScan As Integer
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type
Private Type HARDWAREINPUT
uMsg As Long
wParamL As Integer
wParamH As Integer
End Type
Private Type GENERALINPUT
dwType As Long
xi(0 To 23) As Byte
End Type
Private Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Sub SendKey(bKey As Byte)
Dim GInput(0 To 1) As GENERALINPUT
Dim KInput As KEYBDINPUT
KInput.wVk = bKey 'the key we're going to press
KInput.dwFlags = 0 'press the key
' the structure into the input array's buffer.
GInput(0).dwType = INPUT_KEYBOARD ' keyboard input
CopyMemory GInput(0).xi(0), KInput, Len(KInput)
'do the same as above, but for releasing the key
KInput.wVk = bKey ' the key we're going to realease
KInput.dwFlags = KEYEVENTF_KEYUP ' release the key
GInput(1).dwType = INPUT_KEYBOARD ' keyboard input
CopyMemory GInput(1).xi(0), KInput, Len(KInput)
'send the input now
Call SendInput(2, GInput(0), Len(GInput(0)))
End Sub

Private Sub Command1_Click()
Timer1.Enabled = Not (Timer1.Enabled)
End Sub

Private Sub Form_Load()
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
SendKey VK_A
End Sub

㈥ vb 表格控件 详解

表格控件使用MSFlexGrid 控件

阅读全文

与VB自动控件软件相关的资料

热点内容
电脑上怎么下载班智达的软件 浏览:1157
无痕迹消除图片软件 浏览:722
免费小票软件 浏览:955
华为在哪里设置软件停止运行 浏览:961
用电脑键盘调节声音大小 浏览:1259
自动刷软件赚钱 浏览:1261
古装连续剧免费版 浏览:1415
工免费漫画 浏览:1147
手机软件专门储存文件 浏览:1509
uos如何用命令安装软件 浏览:1316
有线耳机插电脑麦克风 浏览:647
侏罗纪世界3在线观看完整免费 浏览:995
单个软件怎么设置名称 浏览:719
凤凰网电脑版下载视频怎么下载视频怎么下载 浏览:1385
明白之后如何免费获得无人机 浏览:831
如何解禁软件菜单 浏览:855
副路由器连接电脑视频 浏览:1351
内置wifi电视如何装软件 浏览:1107
手机换零免费雪碧 浏览:1589
国行苹果如何下载美版软件 浏览:1215