精华内容
下载资源
问答
  • VB 要求对象

    千次阅读 2015-11-03 17:43:00
    vDoc = WebBrowser1.Document '提示要求对象 Set vDoc = WebBrowser1.Document '正确执行 转载于:https://www.cnblogs.com/tengpan-cn/p/4933892.html
    vDoc = WebBrowser1.Document   '提示要求对象
    Set vDoc = WebBrowser1.Document   '正确执行

     

    转载于:https://www.cnblogs.com/tengpan-cn/p/4933892.html

    展开全文
  • win7(64位)安装VB6.0后,加载控件Microsoft Windows Common Controls 6.0 (SP6) (即MSCOMCTL.OCX)时,提示对象库未注册。 运行压缩内的注册ocx.bat即可。
  • 一键解决VB6(WIN7 X64)对象库未注册问题,特别是在win7 x64下无法引用mscomctl.ocx的问题,其他控件也可以解决.一定要先解压出来,重点一定要先解压出来!
  • 解压缩以后 选择对应系统的 文件夹。 先运行“卸载OCX ”, 再运行 “注册OCX” 亲测能过
  • 我做毕业设计,用VB.NET设计界面,打开pre/e的模型,但是一直错误,求指点 ![图片说明](https://img-ask.csdn.net/upload/201605/02/1462172332_688669.jpg) Imports pfcls Imports System.Reflection.Assembly ...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • VB6 对象库未注册问题

    千次阅读 2017-07-28 17:53:00
    以下是个人使用VB6出现对象库未注册问题的解决方法。已成功! 一、注册ocx文件 mscomctl.ocx文件放进路径C:\Windows\System32(64是此路径,由于本人是64位系统32位未测试)CMD命令:cd C:\Windows\System32...

    以下是个人使用VB6出现对象库未注册问题的解决方法。已成功!

     

    一、注册ocx文件

    mscomctl.ocx文件放进路径C:\Windows\System32(64是此路径,由于本人是64位系统32位未测试)
    CMD命令:
    cd C:\Windows\System32
    regsvr32 mscomctl.ocx

    二、注册tlb文件

    前提:regtlib.exe文件要放进与下面对应的文件夹(regtlib.exe下载地址:http://download.csdn.net/detail/cuihan_1994/9914239

    32-bit系统
    cd C:\Windows\System32
    再运行:
    regtlib msdatsrc.tlb

    在64-bit 系统:
    cd C:\Windows\SysWOW64
    再运行:
    regtlib msdatsrc.tlb

     

    三、访问系统注册表问题

    最后有可能出现“访问系统注册表错误”,VB软件 →右键→属性→兼容性→以管理员身份运行程序。然后就可以啦!

     

     

    转载请标明出处!!!

     

    转载于:https://www.cnblogs.com/weigaung/p/7251694.html

    展开全文
  • VB.net学习笔记(六)VB.net的对象

    千次阅读 2013-07-30 21:34:04
     2、实现了对字段值的过滤,比如赋值时,如果是负数(不允许为负时)可以在代码中提示。  3、细化了字段的读和写,有时只准读,有时只准写,这样分类进行限制。  4、对范围进行限制,有些只准在项目内使用...

    1、System.Object

           每个变量、控件、窗体都继承了System.Object





    2、对象的声明与实例化

         简单说声明,只是说明类型,实例化说明在内存中分配了空间。

        

          用New来创建对象,得到类的一个新实例

          下面有5种实例化形式,其中3较为标准且可读化高。

            Dim a As theClass   '1,用两语句来创建实例,先声明再实例化
            a = New theClass()
    
            Dim b As New theClass()  '2,仅一个语句实例化
    
            Dim c As theClass = New theClass() '3,仅用一个语句实例化,更能表明类型与创建,在接口/继承上更好用
    
    
            doSomeThing(New theClass())  ' 4,参数中创建实例
    
    
            doSomeThing(New theClass().getValue()) '5,参数中创建的同时调用其方法
            



    3、对象引用

         通常使用对象都是使用对象的引用。对象的引用(对象变量)本质上就是对象的指针就同C++的指针一样。

         当用New创建一个对象时,就会将对象的引用(指针)存储到一个变量中。


         下面是对象a,和b赋值时本质情况,在C++中被称为浅复制






    4、取消对象

          给一个对象引用赋值为Nothing时,就取消了这个对象的引用。

          经实验,Nothing实际上存储的是0,和C++一样给一个对象变量设置为0时,就取消它指向堆中分配的空间。

     

           这时.Net会知道:这个对象不再需要,运行库会在某时刻销毁该对象,收回内存及资源。因此在.Net删除对象

           之前,Framework会为该对象调用Finalize方法。





    5、前期绑定与后期绑定

          前期绑定:编译时就知道类型,故能准确地分配空间指定大小,运行速度快

          后期绑定:编译时不知道,只有运行时才知道,它提供了灵活性(但IntelliSense也就失效了),由于是运行时动态

                               分配所以速度慢。

           后期绑定容易出错,所以一般要配合Try....Catch...进行处理异常情况

           (option Strict  off就是可以后期绑定,默认)







    6、类型转换

         隐式转换与显式转换

         Cint,Clong....等是为了兼容由VB6转向VB.net,这并不是最佳的方式。


         VB.net提供了几个显式转换。


         (1)Convert转换类

            可用Convert.ToLong(变量)之类,把变量转换成Long型

            此类只能将已经一些基本类型已经明确知道类型纳入到其中的函数,并不能代表全部。


           注意:1、如果出现错误,将抛出异常。比如将负数转为非负的UInt32

                        2、共享方法MaxValue,MinValue勿需参数就可得到值如:Long.MaxValue


          (2)Parse、TryParse方法

             仅用于值类型,将字串转为相应的数值类型

                        result=Long.Parse("100")

              如果失败,将抛出异常,而异常会消耗额外的系统资源,影响性能。

              于是TryParse出场,它封装了异常处理,只返回是否成功的逻辑值,

               成功,返回True,失败为False,常用于转换前判断。

              dim a  as Long

               if   Long.TryParse("100", Long) then

                      b=a

                end if



             (3)Ctype函数

             默认Option  Strict是关闭的,因此是可以隐式转换,但如果开启了,一些转换就不能进行,就可以用Ctype指定。
             dim a as object=c
             dim b as string
             b=a     '若启option strict将出错,这时须指定为Ctype(a,string)


             CType若失败,将引发异常




           (4)DirectCast( a, b)函数
             把a转为b类型,仅用于引用类型且用于假定可以直接转换的,不能对转换数据执行额外的处理,即不具有主动性。
             常用于具有继承关系的类型。失败将产生异常。


              如果说CType是智能体,可以转换任意类型,那么DirectCast只能转换具用继承判断的引用型






              (5)TryCast
                 TryCast与DirectCast类似,不同的时,因封装了异常处理,它不会抛出异常。
                 如果成功,返回正确转换后的类型;
                 如果失败,返回Nothing
                 
                 TryCast用于继承等的引用类型,不会抛出异常。





    ===========================================================================================




    对象是由类产生,对象是类的一个实例。


    1、创建类

          用Class关键字来创建类

          Pulbic  Class  Person

                  ...................'Code

          End Class


         最常见的是每个文件只包含一个类。

         

         注意:我们可以发现一个简单的窗体程序就只有一个类,而没有什么实例产生,或运行。

                     这是什么原因呢?

          原来:首先启动窗体时候已经实例化了一个对象,该对象会有一个线程,通常我们称为UI始终监视信息泵系统,

                     如果接受到类似的拖动,点击,重绘信息,消息泵就会去通知UI,让UI来处理





    2、字段

          字段即C++的数据成员,是用来存储数据的。每产生一个对象都会产生一个字段的副本。

          注意关键字的作用域 :

              Private      私有,只能用于类中代码

              Public       公有,类内类外的任何程序集的的任何项目都可使用

              Protected   保护,只用于该类继承的类

              Friend       友元,只能用于项目或组件的代码

              Protected Friend    用于项目或组件的代码以及项目内或项目外从该类继承的类

    Public Class People
        Private mName As String   '字段,即数据成员
        Private mBirthday As Date
    
    End Class




    3、方法

            方法是类的方法成员,由sub或function等来完成对数据成员的操作,或对外部的一处理。

            sub  是不用返回值

            function   需返回值,返回值在代码中用return来指明,或者用方法名(函数名)赋值取得

        Public Function Age() As Int32
            Return CInt(DateDiff(DateInterval.Year, mBirthday, Now())) '用return返回值
        End Function
    
        Public Function Age() As Int32
            Age = CInt(DateDiff(DateInterval.Year, mBirthday, Now())) '用方法名取得返回值
        End Function



    4、方法的作用域

           方法前面的关键字用来指明方法的作用域

            它与字段的作用域一样。比如:

            Friend的方法,表明对于 项目内的代码这是对象接口的一部分,但使用该程序集的其它应用程序或项目不能调用。

      




    5、方法的参数

         参数与前面的sub,Function一样。

         对于值传递用byval,或用引用传递使用ByRef,这样在方法中更改其值,可使原值发生变化。     

        Public Class People
            Private mName As String   '字段,即数据成员
            Private mBirthday As Date
            Private mTotalDistance As Int32
    
            Public Sub Walk(ByVal distance As Int32) '若需改变外部distance值,这里可改byval为byref
                mTotalDistance += distance
            End Sub
    
            Public Function Age() As Int32
                Return CInt(DateDiff(DateInterval.Year, mBirthday, Now())) '用return返回值
            End Function
    
        End Class






    6、属性

         .net提供了一种特殊的方法,称属性,使用关键字Property。

         本质上它还是方法,只是为了分类、理解更容易,结合前面的字段(数据成员),提供一种新的方法称属性。

          比如前面的字段mName ,如果设置成Public,原理上可以的,但和我们设计类的封闭性违背。

          这种情况一般用一个方法来代码对字段的直接操作,而原字段设置成Private,就完善了对数据封装的概念。


          由于常用这个的方法来操作较为频繁,于是设计成一个Property属性(方法)来代替,用Get实现读取字段,

          用Set来实现给字段赋值。

          这样有几个好处:

           1、完善了类的封装;

            2、实现了对字段值的过滤,比如赋值时,如果是负数(不允许为负时)可以在代码中提示。

            3、细化了字段的读和写,有时只准读,有时只准写,这样分类进行限制。

            4、对范围进行限制,有些只准在项目内使用,有些可以。(用Friend来限制)

          例:下面是一个属性的定义

        Public Property mName() As String
            Get
                Return mName
            End Get
            Set(value As String)
                mName = value
            End Set
        End Property

          注意:1、属性名和字段名各不相关,可以相同,也可以不同(最好设置不同,例中为相同)

                            尽管属性中操作的是一个(或多个)字段,只有明白内部的代码才能知道对应的是哪个字段。

                            而在对象中显示属性成员的名字时,是属性名而不是字段名!!!

                             例中mName属性与字段mName并不相关,对生成的对象成员中显示的属性名。

                       2、对于一般不须限制的属性可以直接用下面简化成一句即可。  

    Public Property mName() As String

                               效果与 Public  mName as String一样

                    

                       这个功能叫“自动实现的属性”。MSDN描述如下:

                     “自动实现的属性”使您可以快速指定类的属性,而无需编写代码对该属性执行 Get 和 Set 操作。
                     通过自动实现的属性,可在一行中声明一个包含默认值的属性。

    Public Property Name As String
    Public Property Owner As String = "DefaultName"
    Public Property Items As New List(Of String) From {"M", "T", "W"}
    Public Property ID As New Guid()
                   在声明自动实现的属性时,Visual Basic 会自动创建一个隐藏的私有字段(称为“支持字段”)来包含该属性的值。

                   支持字段名称是在自动实现的属性的名称前面加下划线 (_)。 

                  例如,如果声明一个名为 ID 的自动实现的属性,则支持字段的名称为 _ID。

                  如果有一个类成员的名称也是 _ID,则会产生命名冲突并且 Visual Basic 会报告编译器错误。


                此外,支持字段还具有下列特性:
                    支持字段的访问修饰符始终为 Private,即使该属性本身具有不同的访问级别(如 Public)也是如此。
                   如果该属性标记为 Shared,则支持字段也是共享的。
                  为该属性指定的特性不应用于支持字段。
                    可从类中的代码以及从监视窗口等调试工具中访问支持字段。 但是,支持字段不会显示在 IntelliSense 文字完成列表中。

               必须改用标准的“扩展”属性语法(此时不能用自动实现的属性功能)。
              如果要执行下列任一操作,则必须使用扩展属性定义语法:
                     向属性的 Get 或 Set 过程添加代码,如用于验证 Set 过程中的传入值的代码。 例如,在设置属性值之前,您可能希望验证一个表示电话号码的字符串是否包含所需数目的数字。
                    为 Get 和 Set 过程指定不同的可访问性。 例如,您可能希望将 Set 过程设为 Private,将 Get 过程设为 Public。
                    创建 WriteOnly 或 ReadOnly 属性。
                    使用参数化属性(包括 Default 属性)。 若要为属性指定参数,或者为 Set 过程指定附加参数,必须声明扩展属性。
                    为支持字段设置特性,或者更改支持字段的访问级别。
                   为支持字段提供 XML 注释。
                  

            下例是限制赋值时,只能在项目内生效,项目外不能赋值。

        Public Property mName() As String
            Get
                Return mName
            End Get
            Friend Set(value As String) '仅限于项目内使用
                mName = value
            End Set
        End Property






    7、参数化属性

          属性有可能是单一值,也可是多个值(属性数组、参数化属性)。

          这样,它可以为某些设置一个可选范围,或者成一个数组,如:电话号码可存储多值。

         为此,我们可以把mPhone电话号码属性设置成哈希表类型。

         例:   参数是“索引”

       Private mPhones As New Hashtable '哈希表类(集合)
        Public Property Phone(ByVal location As String) As String '参数类似索引在哈希表中定位
            Get
                Return mPhones.Item(location)
            End Get
            Set(value As String)
                If mPhones.ContainsKey(location) Then '判断是否已经有此索引
                    mPhones.Item(location) = value    '有,直接更新值
                Else
                    mPhones.Add(location, value)       '无,加入索引及值
                End If
            End Set
        End Property

            注:哈希表,本质上同数组相同,都是通过“索引”来取得或设置值。但数组是“数值”型的索引,而哈希表索引可以是其它类型

                   比如字符串,数组是连接存储,哈希表是通过“索引”(关键字)映射取得。

                    另外,哈希表比数组灵活,但更浪费空间。






    8、只读属性、只写属性

            正如前面所说,在Property前加入ReadOnly(只读)或WriteOnly(只写),就可限制对属性的操作。

            如:

             Public  WriteOnly  Property   Amber() as int32

                      set(ByVal  Value  As integer)     ‘只读,当然只有Set而没有Get

                                  mAmber=Value

                       End Set

               End  Property





    9、默认属性

          对象可以实现默认属性,用它时,不用指明属性,会自动赋值或获取对应的某属性。

          这时,须用Default来指明某属性是默认的属性。例:


        Private mPhones As New Hashtable
        Default Public Property Phone(ByVal location As String) As String '用default表示这个属性当作对象的默认值
            Get
                Return mPhones.Item(location)
            End Get
            Set(value As String)
                If mPhones.ContainsKey(location) Then
                    mPhones.Item(location) = value
                Else
                    mPhones.Add(location, value)
                End If
            End Set
        End Property
        '================================================================================
        Dim myPerson As New People
        myPerson.Phone("home")="12345678" '没有指定为默认属性时,必须这样明确指明属性
        myPerson("home")="12345678"       '一旦指明默认属性为phone时,可简化成此句,自动知道是Phone属性

            默认属性必须是带参数的属性,不带参数的属性不能为默认值。

           猜想是不是不带参数时,VB.net无法判断是隐式的类型转换还是给默认属性进行赋值?对否?

          


    展开全文
  • vb.net vs2008中,如何把常用代码编写成一个模块,然后在不同的窗体中调用? 分享| 2014-01-31 14:45重金属材料 | 浏览 261 次 比如如何把连接数据库的语句编写为一个模块,然后又如何在不同的窗体中调用这个模块?...

    vb.net vs2008中,如何把常用代码编写成一个模块,然后在不同的窗体中调用?

    2014-01-31 14:45 重金属材料 | 浏览 261 次
    比如如何把连接数据库的语句编写为一个模块,然后又如何在不同的窗体中调用这个模块?请给出详细的步骤,我初学菜鸟一个,谢谢。
    

    举报| 2014-01-31 15:12

    提问者采纳

    我的思路是,新建一个“类库”项目,在项目里编写一个类,然后生成,就会得到dll文件。在别的项目里,添加对这个dll文件的引用,就可以使用我们编写的类了。
    
    追问:
    能给个详细的步骤吗?不光是个思路,我怎么写写这个类库还不知。谢谢
    
    能给个详细的步骤吗?不光是思路,怎么引用,怎么编写,怎么传递变量,怎么得到返回值等等。最好有例子,谢谢
    
    追答:

    其实连接SQL Server有一个挺好用的现成的类,就是System.Data.SqlClient.SqlConnection,具体参见http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx。

    下面以“将常用代码编写成一个模块,方便今后调用”为目的详细解释一下类库这种代码复用方式。

    1. 新建类库在Visual Studio中,新建项目时,会给出好几种模板,例如Windows 窗体应用程序、WPF 应用程序、控制台应用程序、类库等。选择类库,命好名称,就创建了一个类库。在这个项目里,默认有一个Class1.vb文件,在这个文件里就可以添加“常用代码”了。

      添加好代码之后,在菜单里选择生成解决方案,就在这个项目的目录里生成了dll文件。

    2. 引用类库在别的项目里,如果想要引用以前编写好的类库,就在项目菜单里选择添加引用,找到以前生成的dll文件即可。这时候你就可以像使用.NET自带的类一样使用自己的类了。

    嗯……不知道你对于自定义类这方面熟练程度怎么样?

    追问:
    请再指导:以下是我项目,添加--类dbConnect以后,在login_frm的load事件中的代码调用:
    
    Imports mysbgl.DBconnection '引入命名空间
    
          ' load事件
            Call openConn()  ’这里提示“对非共享成员的要求对象引用”
    
    该如何正确引用子程序和函数呢? 请指点,谢谢。
    
    追答:

    三种解决方法:

    1. 在定义类的文件里把DBconnection类改为模块,即Module DBconnection
    2. 在定义类的文件里修改方法的修饰符为Shared openConn()
    3. 在引用类的文件里创建这个类的实例:Dim db As New DBconnection()然后通过实例来调用方法:Call db.openConn()

    选择任一方法即可

    简单的vb.net DLL示例可以参见另一文章《VB.NET dll 示例》

    展开全文
  • VB 中 FSO 对象模型介绍

    千次阅读 2013-12-22 00:25:14
    VB 中应用 FSO 对象模型介绍   从 Visual Basic 的第一版至今,VB 中有关文件的处理都是通过使用 Open 、Write 以及其它一些相关的语句和函数来实现的。随着软件技术的不断发展,加上面向对象编程...
  • VB6.0 对象库未注册解决办法

    千次阅读 2015-03-23 15:32:10
    方法一: 利用管理员权限,打开cmd,利用指令强行进行注册 方法二: 重新下载 Service pack6 ,打开一个已经引用过该类库的项目,再关掉该项目。然后在新项目中再重新引用一次。
  • msdn未注册--如何应对VB对象库注册失败MSCOMCTL.OCX 今天打开VB中的一个.vbp工程文件,突然发现提示对象库未注册”
  • vb中执行查询后,一般要判断是否为空,
  • regsvr32 /u %windir%\system32\mscomctl.ocx regsvr32 %windir%\system32\mscomctl.ocx bing、百度无果,有说安装顺序(office)冲突的,有重装系统...换vb 原版安装文件, 英文报错 ObjectLibrary Not Register...
  • 我是VB初学者求大神指教,谢谢! 以下是代码 Private Sub Form_Load() Dim xml_document As DOMDocument Dim values_node As IXMLDOMNode Dim XlmPath As String ' Load the document. Set xml_document = ...
  • “实时错误“3704”,对象关闭时,不允许操作” 点击调试后如下图所示: 考虑到可能是没有连接到数据库,需要连接数据库。具体步骤如下: 1.在frmLogin窗口添加一个ADO控件,右键打开属性按钮,在...
  • vb.net中tooltip控件应用

    2016-11-07 18:58:37
    vb.net中tooltip控件应用
  • VB——对象库未注册

    万次阅读 多人点赞 2012-08-19 08:09:13
    由于前两天在清理文件的时候,不小心把C盘系统文件删了,今天打开vb6遇到了一个很顽固的问题,如下:       解决方法1: 打开frmMain.log发现如下问题: 行 12: 控件 sbStatusBar 的类 MSComctlLib.Status...
  • 在iobjects.Net组件中,按下“Delete”按键,为了防止错删对象,在删除对象时,弹出提示框。
  • VB_ComponentOne注册破解

    2014-05-05 11:01:03
    ComponentOne破解 ComponentOne注册 ComponentOne控件 VB
  • VB6源码禁止录入重复数据,实现在输入数据的时候,加上一个判断,禁止将重复数据保存到...操作的数据库对象为db_sell.mdb的客户类别表,如果发现提交的数据内容已存在,会弹出一个提示框告之。 运行环境:Windows/VB6
  • 支持C++、VB.NET和Razor等附加语言,为客户提供了解决方案视图和源控件差异共享。 打开你最近处理过的代码,或者通过新的启动窗口,比如克隆、打开或新建项目等最常用的流程之一开始。 按受欢迎程度排序...
  • vb中用ado对象Recordset来绑定到DataGrid的常见问题分析 2014年03月14日 ⁄ 综合 ⁄ 共 2412字 ⁄ 字号 小 中 大 ⁄ 评论关闭 - 先看正常代码: Dim con As New ADODB.Connection '定义...
  • vb6.0 office excel 和wps共存,创建正确的excel对象以便操作excel表格 “类 Workbook 的 SaveAs 方法无效”错误
  • VB6 IDE中调试的时候发现 Getobject(,“excel.application”) 的使用时总是无法获取打开着的EXCEL对象 报错情况: err.description ActiveX 部件无法创建对象 err.number 429 可疑惑是IDE生成的EXE文件是可以正常运行...
  •  VB.net用New做构造函数,在对象产生时进行初始化,对每个对象它只运行一次。  不带参数的New: Public Sub New() Phone("home") = "555-1234" Phone("work") = "555-5678" End Sub  带...
  • VB 对象库未注册的解决办法

    千次阅读 2012-08-24 09:10:59
    先关闭所有 VB ,再打开 cmd ,输入下面的试试: regsvr32 /u %windir%\system32\mscomctl.ocx regsvr32 %windir%\system32\mscomctl.ocx

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,062
精华内容 7,624
关键字:

vb提示要求对象