1个回答
2009-03-22
展开全部
都四级了。还0分悬赏~小气了点吧。
创建一个ActiveX控件工程 在“文件”选单中选择“新建工程”,然后双击“ActiveX控件”图标,生成一个控件工程项目(缺省名UserControl1)。此时设计窗口显示一个类似于窗体的界面(无边框),其属性窗口也类似于窗体的属性窗口,只是有很多熟悉的属性没有了,且还有一些一般窗体不具有的属性。选取“工程选单”最下面的“UserControl1属性”项,在出现的对话框中改工程名称为“MyControl”。在属性窗口中改控件名称为“MyTime”。 到这里,就初步建立好了一个active控件工程。然后,我们来设计界面,我们加入一个timer(timer1)控件和一个label 控件,将timer1的“Interval”属性为1000,然后在Timer1_Timer()过程中加入如下代码: lblTime.Caption = Time 'Time 返回系统当前时间 现在将工程保存一下。由于控件工程不能独立运行,我们创建一个新的工程来测试一下设计的新控件。 选取“文件”选单上的“添加工程”,注意不要用“打开工程”或“新建工程”,那样会关闭控件工程。创建一个“Standard exe”工程,并将控件工程的设计窗口关闭,这时会发现在控件工具栏的最下边出现了一个名为“MyTime”的新控件。将其放至Form1窗体内,窗体上会出现一行文字,显示的正是当前时间,这就是新创建的MyTime的实例“MyTime1”。然后把我们后来加的那个工程设置为启动工程,这样,按F5运行看看效果吧。到这里,我们就初步实现了一个最基镜腶xtive控件。下面我们介绍一些高级的东西。 2、添加属性 为我们的控件添加Interval属性,使的我们可以设置timer的间隔。步骤如下: 选择菜单“工程”》添加用户控件》vb Axtivex控件界面向导,然后点击打开按钮,在出现的界面中单击下一步,出现如下界面: 这里左边显示的是可用的属性,右边显示的是所有已经选择的属性。我们先把右边的全部删除,然后在左边找的“Interval”,双击添加道右边,单击下一步。出现如下的界面: 上一个界面显示的是在你的自定义控件中那写控件已经有的属性,例如interval是timer控件有的。而这里可以加那些控件没有的,我么这里加一个TimeFormat属性,用来控制日期的显示格式。单击增加,在名称中输入TimeFormat,在类型中选择属性。单击确定。 然后用同样的方法新建一个GetTime方法和一个click事件,之后图如下: 之后单击下一步,出现如下界面: 这里,左边是我们建立的一些元素,右边是映射到的控件和成员,我们这里对应关系如下: 设置好了之后,单击下一步,就出现如下界面: 这里列出了我们自定义的属性和方法,那些系统的属性和我们自定义的事件不在这里显示。在上面的界面中,我们可以对我们刚才定义的属性:TimeFormat属性设置类型,默认值和运行时或则是设计时可改变与否,相信大家都看得懂。我们这里把类型设置为String,默认值为“hh-mm-ss",运行时为Read/Write,设计时为Read/Write。设置好了之后单击完成。然后可以在MyTime的代码窗口中看到程序为我们增加了一些代码。 这时,属性interval可以使用,但是,我们自己定义的属性TimeFormat并未生效,我们把Timer1_Timer过程改成如下: If Me.TimeFormat <> "" Then Label1.Caption = Format(Time, Me.TimeFormat) Else Label1.Caption = Time End If 改好之后,你在form1中把MyTime1的TimeFormat属性设置为:hh时mm分ss,在看看时间的显示吧。 也可以改变inteval属性来改变时间改变的间隔 如果我们双击Mytime1空间,可以看到,他有click事件。 Private Sub MyTime1_Click() End Sub 下面我们来分析以下click的原理: 我们会发现代码窗口中“通用”项下出现如下代码: Option Explicit Public Event Click() 大家也许能够看得出来,在这里只是定义了两个名称,它们和鼠标的Click毫无关系,下面的代码就把它们联系起来。 Private Sub UserControl_Click() RaiseEvent Click End Sub Private Sub Label1_Click() RaiseEvent Click End Sub RaiseEvent的功能是把控件或其上的子控件的事件进行转发,因为控件总是由其它的子控件组成,上面的代码的意思是:当你单击用户控件时,就出发控件的click事件,当label单击时,也出发。 现在关闭控件设计窗口,打开测试工程,在MyTime1的过程列表中,发现多了事件Click,点击Click,添加代码如下: Private Sub MyTime1_Click() MyTime1.Interval = 3000 Debug.Print "Interval的值为:" & MyTime1.Interval End Sub 运行测试工程,点击窗口中显示的时间,会在立即窗口中输出刚设定的Interval属性值是3000。 最后,我们刚才建立的方法还不能使用,我们现在来实现。可以看到,我们刚才的步骤完成好后,控件的代码窗口中自动加了如下代码: Public Function GetTime() As String End Function 我们改成如下: Public Function GetTime() As String GetTime = Time '返回当前时间,这里只是举例,大家可以加入其他的复杂代码 End Function 然后我们在测试工程中加入一个按钮(command1)在他的click事件中加入下面代码: Private Sub Command1_Click() MsgBox MyTime1.GetTime End Sub 然后运行,单击按钮看看效果。 到这里,我们把active的基本功能都实现了,大家如果看懂了,自然就知道做复杂控件了。
创建一个ActiveX控件工程 在“文件”选单中选择“新建工程”,然后双击“ActiveX控件”图标,生成一个控件工程项目(缺省名UserControl1)。此时设计窗口显示一个类似于窗体的界面(无边框),其属性窗口也类似于窗体的属性窗口,只是有很多熟悉的属性没有了,且还有一些一般窗体不具有的属性。选取“工程选单”最下面的“UserControl1属性”项,在出现的对话框中改工程名称为“MyControl”。在属性窗口中改控件名称为“MyTime”。 到这里,就初步建立好了一个active控件工程。然后,我们来设计界面,我们加入一个timer(timer1)控件和一个label 控件,将timer1的“Interval”属性为1000,然后在Timer1_Timer()过程中加入如下代码: lblTime.Caption = Time 'Time 返回系统当前时间 现在将工程保存一下。由于控件工程不能独立运行,我们创建一个新的工程来测试一下设计的新控件。 选取“文件”选单上的“添加工程”,注意不要用“打开工程”或“新建工程”,那样会关闭控件工程。创建一个“Standard exe”工程,并将控件工程的设计窗口关闭,这时会发现在控件工具栏的最下边出现了一个名为“MyTime”的新控件。将其放至Form1窗体内,窗体上会出现一行文字,显示的正是当前时间,这就是新创建的MyTime的实例“MyTime1”。然后把我们后来加的那个工程设置为启动工程,这样,按F5运行看看效果吧。到这里,我们就初步实现了一个最基镜腶xtive控件。下面我们介绍一些高级的东西。 2、添加属性 为我们的控件添加Interval属性,使的我们可以设置timer的间隔。步骤如下: 选择菜单“工程”》添加用户控件》vb Axtivex控件界面向导,然后点击打开按钮,在出现的界面中单击下一步,出现如下界面: 这里左边显示的是可用的属性,右边显示的是所有已经选择的属性。我们先把右边的全部删除,然后在左边找的“Interval”,双击添加道右边,单击下一步。出现如下的界面: 上一个界面显示的是在你的自定义控件中那写控件已经有的属性,例如interval是timer控件有的。而这里可以加那些控件没有的,我么这里加一个TimeFormat属性,用来控制日期的显示格式。单击增加,在名称中输入TimeFormat,在类型中选择属性。单击确定。 然后用同样的方法新建一个GetTime方法和一个click事件,之后图如下: 之后单击下一步,出现如下界面: 这里,左边是我们建立的一些元素,右边是映射到的控件和成员,我们这里对应关系如下: 设置好了之后,单击下一步,就出现如下界面: 这里列出了我们自定义的属性和方法,那些系统的属性和我们自定义的事件不在这里显示。在上面的界面中,我们可以对我们刚才定义的属性:TimeFormat属性设置类型,默认值和运行时或则是设计时可改变与否,相信大家都看得懂。我们这里把类型设置为String,默认值为“hh-mm-ss",运行时为Read/Write,设计时为Read/Write。设置好了之后单击完成。然后可以在MyTime的代码窗口中看到程序为我们增加了一些代码。 这时,属性interval可以使用,但是,我们自己定义的属性TimeFormat并未生效,我们把Timer1_Timer过程改成如下: If Me.TimeFormat <> "" Then Label1.Caption = Format(Time, Me.TimeFormat) Else Label1.Caption = Time End If 改好之后,你在form1中把MyTime1的TimeFormat属性设置为:hh时mm分ss,在看看时间的显示吧。 也可以改变inteval属性来改变时间改变的间隔 如果我们双击Mytime1空间,可以看到,他有click事件。 Private Sub MyTime1_Click() End Sub 下面我们来分析以下click的原理: 我们会发现代码窗口中“通用”项下出现如下代码: Option Explicit Public Event Click() 大家也许能够看得出来,在这里只是定义了两个名称,它们和鼠标的Click毫无关系,下面的代码就把它们联系起来。 Private Sub UserControl_Click() RaiseEvent Click End Sub Private Sub Label1_Click() RaiseEvent Click End Sub RaiseEvent的功能是把控件或其上的子控件的事件进行转发,因为控件总是由其它的子控件组成,上面的代码的意思是:当你单击用户控件时,就出发控件的click事件,当label单击时,也出发。 现在关闭控件设计窗口,打开测试工程,在MyTime1的过程列表中,发现多了事件Click,点击Click,添加代码如下: Private Sub MyTime1_Click() MyTime1.Interval = 3000 Debug.Print "Interval的值为:" & MyTime1.Interval End Sub 运行测试工程,点击窗口中显示的时间,会在立即窗口中输出刚设定的Interval属性值是3000。 最后,我们刚才建立的方法还不能使用,我们现在来实现。可以看到,我们刚才的步骤完成好后,控件的代码窗口中自动加了如下代码: Public Function GetTime() As String End Function 我们改成如下: Public Function GetTime() As String GetTime = Time '返回当前时间,这里只是举例,大家可以加入其他的复杂代码 End Function 然后我们在测试工程中加入一个按钮(command1)在他的click事件中加入下面代码: Private Sub Command1_Click() MsgBox MyTime1.GetTime End Sub 然后运行,单击按钮看看效果。 到这里,我们把active的基本功能都实现了,大家如果看懂了,自然就知道做复杂控件了。
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询