前言:学习任何编程语言、编程工具的目的不外乎解决生活问题,能够快速、高效解决问题的方式就是不错的方式,至于选择什么“工具”,众位看官看着办,本人虽然有过3年vb开发经验,但是一直没有深入学习,现已购买 《张宁著 老兵新传  核心编程及通用模块开发》,深入学习vb开发,继续将vb发扬光大。

一、知识准备

   本章从API函数开始介绍vb下如何使用api函数,模块、类模块的编写。主要还是阐述的一种思想,通用模块开发,编写的模块能够通用,多次使用,尽量要降低错误,以达到重复利用目的,从通篇介绍来看,以后还是可以将不错的模块全部类模块化,调用也方便,使用更便捷。
   编程风格总结:
   1、标准命名肯定是要遵守的,基本上都是匈牙利命名法吧,例如cmd_Print,strTmp,intValue等。
   2、变量使用一定要定义(option explicit),另外少用站16字节的variant类型。
   3、代码格式化用格式化工具随时格式化。
   4、用好with end with ,不用的代价是系统资源开销大。另外还可以这样用:
      dim objText1 as TextBox
      set objText1 = Text1
      objText1.Text = "测试程序"
      objText1.Enabled = 1 
      objText1.SelStart = 0
    示例:
      dim lsItem as ListItem
      with ListView1
            .View = lvwReport
            set lsItem = .ListItems.Add(,"L1","Text1")
            lsItem.ToolTipText = "ToolTip1"
            lsItem.SubItems(1) = "Sub1_1"
            lsItem.SubItems(2) = "Sbb2_2"
            lsItem.Selected = 1
            set LsItem = Nothing
       End With
    另外注意with end with 中最好不用goto语句跳转。
    5、布尔值判断。If Check1.checked then Text1.Text = "患者姓名" 因为非0值都表示为真,只有0才表示为假。假=0 真=-1
    6、字符串为空判断。If Len(strTmp) = 0 then exit sub 
    7、能用常量就不要用函数求值,例如:If strKey = vbcrlf then strText = "通过"  ,vbcrlf = chr$(13) + chr$(10)
    8、数组下标从1开始,0可以定义为出错代码,这个经验很少遇到,可以看看是否有好处!!!
    9、用Optional选项定义函数的参数,达到“重载”目的,同一个函数可以传不同的数据参数,这个也少遇到,需要多看看。另外一旦用了Optional后续定义参数都需要用它。实例:public function Getvalue(str1 as string,Optional byval str2 as string ,Optional byval str3 as string) 
    10、ActiveX控件都是封装api的,多熟悉api,减少对activex的使用。
    11、条件编译,好处是编译的文件小,很少遇到!!!
    12、善用MSDN,主要了解Windows的运行机制、运行原理,查找API函数定义等,另外借助c++头文件查找。
    
  本章大体这些,经验不多,4、5、6这几条以后的编程中还是要多注意!
 
 
 
 
    
    

    

VB 核心编程及通用模块开发 笔记1的更多相关文章

  1. python核心编程-第四章-个人笔记

    1.所有的python对象都拥有三个特性: ①身份:每个对象都有唯一的身份标识自己,可用内建函数id()来得到.基本不会用到,不用太关心 >>> a = 2 >>> ...

  2. python核心编程-第三章-个人笔记

    1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括 ...

  3. python核心编程-第五章-个人笔记

    1.用del删除对对象的引用 >>> a = 123 >>> a 123 >>> del a >>> a Traceback ( ...

  4. JavaWeb核心编程之使用Eclipse开发JavaWEB项目

    文章目录 1.eclipse切换到javaee项目 2.创建服务器(如果没有server选项, 怎么做) 3.定制新建面板内容 4.创建动态web工程 1.eclipse切换到javaee项目 如图 ...

  5. MFRC522模块开发笔记

    Write_to_Card(-)和Read_from_Card(-)可谓是所有函数的终点,而SPIWriteByte(-)则是最底层对MFRC522模块进行操作的函数,所有函数都是为了Write_to ...

  6. EC20 minipcie版4g模块开发笔记

    插在电脑上实验时若出现 AT+CREG? +CREG: 0,2 可能是usb口供电不足所致,换至主机箱后面usb口后问题解决,返回值+CREG: 0,1

  7. 【转】Android开发笔记(序)写在前面的目录

    原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...

  8. python核心编程第二版笔记

    python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d   提供调试输出1.2 –O   生成优化的字节码(生成 ...

  9. python核心编程--笔记

    python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找pyt ...

随机推荐

  1. iOS实现自定义的弹出视图(popView)

    前段时间,在项目中有个需求是支付完成后,弹出红包,实现这么一个发红包的功能.做了最后,实现的效果大致如下: 一.使用方法 整个ViewController的代码大致如下 // //  SecondVi ...

  2. linux:ifconfig命令

    许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...

  3. SQL中空值与NULL区别

    很多人都有过这样的问题吧   在SQL中填充空值与NULL有什么区别 现在我以一个实例给大家分享一下自己的想法  恳请大家给予批评也指正 谢谢 创建一个监时表 CREATE TABLE #temp ( ...

  4. Storm中并发程度的理解

    Storm中涉及到了很多组件,例如nimbus,supervisor等等,在参考了这两篇文章之后,对这个有了更好的理解. Understanding the parallelism of a Stor ...

  5. jq层次选择器

    二. 层次选择器 1. parent > child(直系子元素) $(document).ready(function () { // 选取div下的第一代span元素,将字体颜色设为红色 $ ...

  6. WdatePicker时间控件联动选择

    $("#txtStartTime").bind("click focus", function () { var endtimeTf = $dp.$('txtE ...

  7. swift基本数据类型的使用

    // // ViewController.swift // 基本数据类型 // // Created by 叶炯 on 16/9/8. // Copyright © 2016年 叶炯. All rig ...

  8. Linux文件与目录管理之ls的使用

    来源:鸟哥的私房菜 查看文件与目录 ls ls [-aAdfFhilnrRSt] 目录名 ls [--color={never,auto,always}] ls [--full-time] 目录名 选 ...

  9. [改善Java代码]不要只替换一个类

    建议20: 不要只替换一个类 我们经常在系统中定义一个常量接口(或常量类),以囊括系统中所涉及的常量,从而简化代码,方便开发,在很多的开源项目中已采用了类似的方法,比如在Struts2中,org.ap ...

  10. [Yii2]Access to debugger is denied due to IP address restriction. The requesting IP address is

    在更新到正式平台,看到runtime/app.log 有 Access to debugger is denied due to IP address restriction. The request ...