精华内容
下载资源
问答
  • 和C#中的Property不同,VB中的Property通过三个过程来实现:Property Get,Property Let,Property Set 分别为读值,赋值,和对象类型赋值。实现的原理和Property的作用和C#中并无二致,只是C#的形式更为统一,简洁...

    和C#中的Property不同,VB中的Property通过三个过程来实现:Property Get,Property Let,Property Set
    分别为读值,赋值,和对象类型赋值。实现的原理和Property的作用和C#中并无二致,只是C#的形式更为统一,简洁。

    [Public | Private | Friend] [Static] Property Get p_name [(arglist)] [As type]
    [statements]
    [p_name = expression]
    [Exit Property]
    [statements]
    [p_name = expression]
    End Property

    Property Get 过程和普通的Sub过程比较相似。Get属性p_name 将会在过程内得到赋值。p_name = (value)的形式。相当于C#中的属性
    Get部分: Return value ;由于p_name被赋值使用,所以应该有返回值。


    [Public | Private | Friend] [Static] Property Let p_name ([arglist,] value)
    [statements]
    [Exit Property]
    [statements]
    End Property

    Property Let 过程的作用是给Property对应的变量(设为p)赋值。相当于C#中Set部分:p=value;这是一个无返回值的过程。

    [Public | Private | Friend] [Static] Property Set name ([arglist,] reference)
    [statements]
    [Exit Property]
    [statements]
    End Property

    Properyt Set 过程和Property Let一样,只使Let是对普通变量,Set是对对象而言。VB并不是彻底的面向对象。在数据类型方面是传统的

    基本的类型和对象两种。

    展开全文
  • VB6 Storage Property
  • 这是《VB6.0 ActiveX 控件开发详解》的附属文章,如果没有看过这一篇文章的话应先去看看,除非你认为你已经有了一定的ActiveX控件开发基础。   第一章:认识属性过程  在用VB6.0开发ActiveX部件的过程中,我们难免...
      
    

               这是《VB6.0 ActiveX 控件开发详解》的附属文章,如果没有看过这一篇文章的话应先去看看,除非你认为你已经有了一定的ActiveX控件开发基础。

        第一章:认识属性过程

           在用VB6.0开发ActiveX部件的过程中,我们难免要接触到一种不太常用(在标准EXE工程里),但是又很重要的的机制,那就是属性过程(Property过程)。属性大家经常设置Caption属性,Value属性等等,这些属性要么影响着控件的运行方式,要么影响着控件的外观,可是,这些属性在控件内部又是怎样的呢?

           那么我们来看一下,首先,启动VB6.0,建立一个标准EXE工程,再添加一个ActiveX 控件工程。将控件设计器的名称属性由UserControl1修改成MyControl。做好后的设置如下图所示:

    好了,双击用户控件设计器,出现用户控件设计器的代码窗口,如下图所示:

    这时候,选择【工具】菜单的【添加过程】菜单项,做好如下图的设置:

    这时候在代码窗口出现了如下的代码:

    VB代码开始:

    Public Property Get ABSS() As Variant

     

    End Property

    Public Property Let ABSS(ByVal vNewValue As Variant)

     

    End Property

    VB代码结束:

           这两个过程就是我们所说的属性过程,它定义了一个名为ABSS的属性。这时候我们发现,一个属性却有两个属性过程,这两个过程除了用Property关键字标识之外,还有一个不同的子标识,就是Get和Let关键字。现在,我就来介绍一下这两种属性过程。

               属性过程有三种,均以Property关键字标识,同时,它们又具有不同的子标识关键字,分别是Get,Let,Set。我们将这三种过程分别称作“属性Get过程”,“属性Let过程”和“属性Set过程”。前面两种的声明就如上面的代码所示,而属性Set过程的声明与属性Let过程的类似,只是将Let换成Set而已。    

            不过这些不同子标识关键字的属性过程有什么用呢?现在,我们将我们设计的MyControl控件拖放到窗体上(由于我们没有对用户控件设计器的图形界面作更改,所以控件是空白的),然后打开窗体的代码窗口,在Click事件中加入如下的代码,并且在开头设置断点,结果如下图所示:

           

    然后我们在用户控件设计器的代码窗口中加入一些代码,结果如图所示:


    接着,我们单击【运行】菜单的【启动】菜单项(或单击工具栏的启动按钮),工程1的窗体出现了,但是断点没什么反应。别着急,单击窗口(别单击刚才拖有控件的地方),程序在断点处停住了,按F8进入下一条语句,现在的运行情况如下图所示:

    这就说明程序运行到了“a = MyControl1.ABSS”处,这句代码就是将属性ABSS得值读出来并赋给a这个变量,也就是读取属性值。再按F8,这时候我们发现,程序转跳到了属性Get过程里,如下图所示:


    也就是说,当我们通过各种方式(属性窗口,代码)读取一个属性的属性值时,该属性的Get过程就会发生好,弄懂了Get过程。我们再按三次F8。程序又回到了窗体1的代码窗口,现在到了“MyControl1.ABSS = 1”这一句代码。这句代码是将ABSS属性的属性值设成1,就是设置属性值。按照惯例,我们再按一次F8。这时候我们发现,程序转跳到了Let过程里,如下图所示:


    这样就说明,当我们通过各种方式(属性窗口,代码)修改一个属性的属性值时,该属性的Let过程就会发生。值得注意的是,并不是每一个属性都需要Get和Let过程都有,当我们需要设计只读的属性时,我们就需要将Let(Set)过程删掉;当我们需要设计只写的属性时,我们就需要将Get过程删掉。

            不过,还没完,既然修改了属性值,那么作为程序员的我们,又怎么拿回客户设置的新的属性值呢?又是老规矩,按F8呗。尽管F8不能让我们拿到新的属性值,但是它可以让我们看到怎么拿回新的属性值。按完F8后,将鼠标移到Let过程的vNewValue参数上。不知道你看到了没有,不过我看到了这个:


    还记得上面的代码吗?前面的代码正是将ABSS属性设为1。其实,我们早就该想到,Let过程的vNewValue参数正是新的属性值,就这样,我们轻而易举的拿到了新的属性值。


    在此为以前的代码书写错误道歉:严禁在Let和Set过程中直接对属性名称进行赋值,我已经修改了所有的图示成正确的代码。可能大家还是无法理解原来的错误是什么,所以我保留一幅旧图:

    留意Let过程里的代码ABSS = vNewValue(新的代码是赋值给gABSS),在ABSS的Let过程里绝对不能出现ABSS=xxx这样的语句,同理,如果是在CDF属性的Let过程里也绝对不能出现如CDF=zzz的语句。这就是“在Let过程中为属性名赋值”的含义。之所以不能这样做,是因为当我们通过各种方式(属性窗口,代码)修改一个属性的属性值时,该属性的Let或Set过程就会发生,如果我们在Let或Set过程里为属性名赋值,则会再次引发Let或Set过程发生,造成递归(过程调用自身),而且是无法退出的无穷递归,导致程序崩溃,所以绝对不能这样做!

    到此,第一章完。

    你可能会问,那么属性Set过程又有什么用呢?别着急,那是第二章的内容。期待我的下一篇博文《VB6.0属性过程详解(Property过程)[第二章:属性Set过程的应用][……]》

    展开全文
  • VB中的属性 Property

    2012-07-10 13:37:00
    和C#中的Property不同,VB中的Property通过三个过程来实现:Property Get,Property Let,Property Set 分别为读值,赋值,和对象类型赋值。实现的原理和Property的作用和C#中并无二致,只是C#的形式更为统一,简洁...
    和C#中的Property不同,VB中的Property通过三个过程来实现:Property Get,Property Let,Property Set
    分别为读值,赋值,和对象类型赋值。实现的原理和Property的作用和C#中并无二致,只是C#的形式更为统一,简洁。

    [Public | Private | Friend] [Static]  Property Get  p_name [(arglist)] [As type]
    [statements]
    [p_name = expression]
    [Exit Property]
    [statements]
    [p_name = expression]
    End Property

    Property Get 过程和普通的Sub过程比较相似。Get属性p_name 将会在过程内得到赋值。p_name = (value)的形式。相当于C#中的属性
    Get部分: Return value ;由于p_name被赋值使用,所以应该有返回值。


    [Public | Private | Friend] [Static]  Property Let  p_name ([arglist,] value)
    [statements]
    [Exit Property]
    [statements]
    End Property

    Property Let 过程的作用是给Property对应的变量(设为p)赋值。相当于C#中Set部分:p=value;这是一个无返回值的过程。

    [Public | Private | Friend] [Static] Property Set name ([arglist,] reference)
    [statements]
    [Exit Property]
    [statements]
    End Property

    Properyt Set 过程和Property Let一样,只使Let是对普通变量,Set是对对象而言。VB并不是彻底的面向对象。在数据类型方面是传统的

    基本的类型和对象两种。

    转载自 http://blog.sina.com.cn/s/blog_4dfc31d7010009nk.html

    转载于:https://www.cnblogs.com/wwb0111/archive/2012/07/10/3098905.html

    展开全文
  • PropertyGrid控件在VB.net下使用的例子

    千次阅读 2012-07-20 17:51:22
    PropertyGrid 更改属性的显示方式 要更改某些属性的显示方式,您可以对这些属性应用不同的特性。特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列...

    PropertyGrid

    更改属性的显示方式

    要更改某些属性的显示方式,您可以对这些属性应用不同的特性。特性是用于为类型、字段、方法和属性等编程元素添加批注的声明标记,在运行时可以使用反射对其进行检索。下面列出了其中的一部分:

    DescriptionAttribute - 设置显示在属性下方说明帮助窗格中的属性文本。这是一种为活动属性(即具有焦点的属性)提供帮助文本的有效方法。可以将此特性应用于 MaxRepeatRate 属性。

    CategoryAttribute - 设置属性在网格中所属的类别。当您需要将属性按类别名称分组时,此特性非常有用。如果没有为属性指定类别,该属性将被分配给杂项类别。可以将此特性应用于所有属性。

    BrowsableAttribute – 表示是否在网格中显示属性。此特性可用于在网格中隐藏属性。默认情况下,公共属性始终显示在网格中。可以将此特性应用于 SettingsChanged 属性。

    ReadOnlyAttribute – 表示属性是否为只读。此特性可用于禁止在网格中编辑属性。默认情况下,带有 get 和 set 访问函数的公共属性在网格中是可以编辑的。可以将此特性应用于 AppVersion 属性。

    DefaultValueAttribute – 表示属性的默认值。如果希望为属性提供默认值,然后确定该属性值是否与默认值相同,则可使用此特性。可以将此特性应用于所有属性。

    DefaultPropertyAttribute – 表示类的默认属性。在网格中选择某个类时,将首先突出显示该类的默认属性。可以将此特性应用于 AppSettings 类。

    现在,我们将其中的一些特性应用于 AppSettings 类,以更改属性在 PropertyGrid 中的显示方式。

    ' Visual Basic

    <DefaultPropertyAttribute("SaveOnClose")> _

    Public Class AppSettings

         Private _saveOnClose As Boolean = True

         Private _greetingText As String = "欢迎使用应用程序!"

         Private _maxRepeatRate As Integer = 10

         Private _itemsInMRU As Integer = 4

         Private _settingsChanged As Boolean = False

         Private _appVersion As String = "1.0"

         <CategoryAttribute("文档设置"), _

          DefaultValueAttribute(True)> _

         Public Property SaveOnClose() As Boolean

             Get

                 Return _saveOnClose

             End Get

             Set(ByVal Value As Boolean)

                 SaveOnClose = Value

             End Set

         End Property

         <CategoryAttribute("全局设置"), _

         ReadOnlyAttribute(True), _

         DefaultValueAttribute("欢迎使用应用程序!")> _

         Public Property GreetingText() As String

             Get

                 Return _greetingText

             End Get

             Set(ByVal Value As String)

                 _greetingText = Value

             End Set

         End Property

         <CategoryAttribute("全局设置"), _

         DefaultValueAttribute(4)> _

         Public Property ItemsInMRUList() As Integer

             Get

                 Return _itemsInMRU

             End Get

             Set(ByVal Value As Integer)

                 _itemsInMRU = Value

             End Set

         End Property

         <DescriptionAttribute("以毫秒表示的文本重复率。"), _

         CategoryAttribute("全局设置"), _

         DefaultValueAttribute(10)> _

         Public Property MaxRepeatRate() As Integer

             Get

                 Return _maxRepeatRate

             End Get

             Set(ByVal Value As Integer)

                 _maxRepeatRate = Value

             End Set

         End Property

         <BrowsableAttribute(False),

          DefaultValueAttribute(False)> _

         Public Property SettingsChanged() As Boolean

             Get

                 Return _settingsChanged

             End Get

             Set(ByVal Value As Boolean)

                 _settingsChanged = Value

             End Set

         End Property

         <CategoryAttribute("版本"), _

         DefaultValueAttribute("1.0"), _

         ReadOnlyAttribute(True)> _

         Public Property AppVersion() As String

             Get

                 Return _appVersion

             End Get

             Set(ByVal Value As String)

                 _appVersion = Value

             End Set

         End Property

    End Class

    展开全文
  • VB Property 中 Set与Let赋值

    千次阅读 2010-03-31 23:33:00
     在Class块中,是给普通变量进行赋值操作的Property,该种Property将不能再其前面使用Set,因而将不能用户对对象变量的赋值。  Property Set 语句   在Class块中,是给对象变量进行设置引用操作的Property。...
  • 这里是《VB6.0属性过程详解(Property过程) 》的第二章,如果你没有看过上面的这篇文章,你应该先去看看,除非你觉得你已经初步了解了属性过程的运作机制。  第二章:第一节:属性Set过程的应用  上一章,我...
  • 很全的vb6源代码库

    2018-01-09 15:15:34
    很全的vb6源代码库 ,可以作为学习参考。 Prefix Type C Class F Form T User-defined type X ActiveX control D ActiveX document P Property page E Enum I Interface class for Implements G Global ...
  • VB6.0属性过程详解(Property过程)[第三章:枚举属性和OLE_COLOR类型(设计限定输入的属性,如DragMode属性)] 》   到这里,属性方面的内容就基本结束了,的确的重点难点啊。期待下一章, 《VB6.0 ...
  • VB.NET is insistent upon enclosing parameters of function calls within parentheses regardless of whether we are returning a value or whether we are using the Call statement. It makes the code much ...
  • 备忘 技术简单 备忘 技术简单 备忘 技术简单 备忘 技术简单
  • vb.net 属性设置

    2018-10-12 21:47:50
    Public Class Car Public color As String Private intSpeed As ...Public Property Speed() As Integer Get Return intSpeed End Get Set(value As Integer) intSpeed = value End Set End Property End Class...
  • vb.net 自定义控件 自定义属性 UITypeEditor UI 类型编辑器 实例 提供一个示例 UITypeEditor,它使用 IWindowsFormsEditorService 显示用于用户输入的 Form。 IWindowsFormsEditorService 只能通过 PropertyGrid ...
  • vb.net查询更新添加删除access数据库(标准化类库) 部分代码: Imports System Imports System.Data.SqlClient Imports System.Configuration Imports System.Collections.Generic Imports System.Text Imports ...
  • VB自制进度条控件

    2021-03-22 18:00:47
    100) Min = .ReadProperty("Min", 0) Value = .ReadProperty("Value", 50) RoundedValue = .ReadProperty("RoundedValue", 5) Enabled = .ReadProperty("Enabled", True) Theme = .ReadProperty("Theme", 1) ...
  • VB.NET 教程_01_基础语法

    万次阅读 多人点赞 2018-08-08 00:48:58
    VB.Net是一种简单,现代,面向对象的计算机编程语言,由微软开发,将.NET Framework和公共语言运行库的强大功能与作为Visual Basic标志的生产力优势相结合。 Visual Basic .NET(VB.NET)是在.NET Framework上...
  • 问题:已经将图片添加到了Project Resource中,但VS还是出现Warning: My.Resources.Resources has no property named "XXXX"解决:将此Project所有的其他工程Reference 都Remove,然后重新添加,再Rebuild...
  • VB实现List集合

    2021-07-25 22:50:17
    Public Property Get Item(ByVal Index As Long) As Variant Item = mArray(Index) End Property '设置项目值 Public Property Let Item(ByVal Index As Long, E As Variant) mArray(Index) = E End Property '查找...
  • 通过详细的示例,介绍PropertyGrid及其使用方法
  • property(fget=None, fset=None, fdel=None, doc=None) 俗话说条条大路通罗马,同样是完成一件事,Python 其实提供了好几个方式供你选择。 property() 是一个比较奇葩的BIF,它的作用把方法当作属性来访问,从而提供...
  • PropertyGrid应是.Net Studio设计时显示、设置控件属性的控件。提供三种使用方法,供参考。
  • 使用Reflection ...static void MoveSplitterTo(PropertyGrid grid, int x) { // HEALTH WARNING: reflection can be brittle... FieldInfo field = typeof(PropertyGrid) .GetField("gridView", BindingFl
  • C#自定义PropertyGrid属性

    千次阅读 2017-11-03 17:01:22
    PropertyGrid控件就是Visual Studio开发工具里面的属性浏览器,我们在VS里面可以通过属性浏览器查看,修改控件的属性,并主要通过使用反射来检索项目的属性。 一.如何显示属性 1)普通显示 在PropertyGrid...
  • vb.net制作贪吃蛇游戏

    热门讨论 2020-07-09 22:04:24
    本篇文章讲述如何在vb.net中编写此游戏代码。 一种方法是可以使用控件数组,在用户界面上使用如多个图片框构成整个背景,将相关图片框设置为蛇身来绘制出整条蛇。这种方法比较简单,处理速度也快。 另外一种方法是...
  • vb圆形窗体

    2011-09-30 17:14:51
    EndProperty ForeColor = &H00FF0000& Icon = "Form1.frx":0000 LinkTopic = "Form1" Picture = "Form1.frx":000C ScaleHeight = 3330 ScaleWidth = 4860 StartUpPosition = 2 '屏幕中心 End Attribute VB...
  • 该产品包含了11种常见的用户界面控件集:Command Bars, Controls, Chart Pro, Calendar, Docking Pane, Property Grid, Report Control, Shortcut Bar, Syntax Edit, Skin Framework 和Task Panel.
  • VB与C#的区别

    千次阅读 2018-09-07 14:23:28
    因工作需要熟悉这两门语言。网络上找的资料 一、实体部分 c#实体 public int Id //作用方式 { get id;//读取属性值 set id;...vb实体 Private ID As String ‘定义静态属性 Pub...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,580
精华内容 7,032
关键字:

propertyvb