⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 050204.htm

📁 提供一个VB学习教程,入门级。来源于网上
💻 HTM
字号:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>vb study</title>
<style>
<!--
td {font-size: 9pt}
A:link {text-decoration: none; color: #0033cc;font-size: 9pt}
A:visited {text-decoration: none; color: #0066CC;font-size: 9pt}
A:active {text-decoration: none; color: #ff0000; font-size: 9pt}
A:hover {text-decoration: underline; color: #000000;font-size: 9pt}
-->
</style>
</head>
<body>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" width="98%">
    <tr>
      <td width="100%"><a href="#">你的位置</a>:<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="#">VB学习</a>--<a href="#">代码</a></td>
    </tr>
    <tr>
      <td width="100%">
        <p align="center">代码</td>
    </tr>
    <tr>
      <td width="100%"><br>
 在标准模块中不能编写某个窗体中的对象的事件过程,事件过程只能在窗体模块中编写。<br>
 VB代码窗口中的书签:书签可用来标记代码中的某些行,以便以后可以很容易地返回这些行,书签的切换或定位可在&quot;编辑&quot;菜单&quot;书签&quot;项中进行。<br>
 VB代码一行一般写一条语句,也可一行写多条语句,每条语句间用冒号:隔开即可<br>
 VB一条长语句可以分成几行来写,在需要分行的地方用&quot;空格+下划线(_)&quot;即可。<br>
 在VB中我们一般用十进制数,但有时用十六进制数或八进制数更方便,怎样表示16进制数呢:用前缀&amp;H,怎样表示八进制数呢,用前缀&amp;O(&amp;号和大写字母O或数字0),如:<br>
 255=&amp;o377=&amp;hFF<br>
 我们可看到用16进制数表示的控件颜色值如:label1.backcolor=&amp;HFF0000(蓝色),通常情况下,颜色值由六位数组成,颜色值=&amp;Hbbggrr。前两位数表示蓝色成分,中间两位表示绿色成分,后面两位表示红色成分,范围从16进制数的0-FF。<br>
 在多个模块中有同名的公用变量(用public声明的)时,引用时应分别指出它的出处,形如:module1.lxn或module2.lxn或form1.lxn等。如果有同名的公用过程或公用函数等也是如此,引用时指明出处。<br>
 变体类型数据的三个特殊值:EMPTY,NULL,ERROR。<br>
 当一个变体变量未赋值时,其&quot;值&quot;就等于Empty.它不等于0或空字符串&quot;&quot;,当给一个变量赋值后(如 lxn=0),其empty值就消失,可重新赋予empty值,如:lxn=empty<br>
 可用IsEmpty函数检测是否为empty值:if IsEmpty(lxn)=true then lxn=0<br>
 给一个变体变量赋予NULL值:常用于数据库程序中表示未知数据或丢失的数据,null的传播性:假如有一个变量值为NULL,将它放入一个表达式中,整个表达式值将变为NULL,将它作为参数传入函数中,函数将返回NULL,NULL能通过表达式&quot;传播&quot;,当然前提是有&quot;变体&quot;变量(为传播载体)的基础上。用IsNull函数检测是否为NULL值,<br>
 如: if IsNull(lxn)=false then lxn=Null<br>
 变体变量的ERROR值,指出已发生的过程中的错误状态。不是指程序错误(我没看懂)<br>
 在动态数组的使用中,用redim确定了数组的最大下标,如果还要改动这个值,而程序中若重复执行ReDim语句时,当前存储在数组中的值都会全部丢失, VB重新将所有数组元素初始化,运行中怎样改变数组的大小而又不丢失数据呢?用ReDim Preserve关健字,但要注意,运行中只能改变数组最后一维的大小,可先用UBound函数取得数组未维最大下标,再进行加或减,如:ReDim Preserve lxn(UBound(lxn)+1),增加一个元素。多维数组如:<br>
 Redim Preserve lxn(10,UBound(lxn,2)+1)第2维增加1个元素。UBound(lxn,2)返回数组lxn的第2维长度。<br>
 在DO…LOOP循环的中途退出用Exit Do语句。<br>
 在函数过程的中途退出用Exit Function语句。<br>
 重点笔记:对象的引用<br>
 在VB中很重要的一部分内容是对其他应用程序所包含的对象的引用,如运行WORD的某些功能,EXCEL的某些功能等等,可以大大丰富程序的实用性,并使程序简单化。<br>
 这样理解:如Word这个大&quot;程序&quot;也是由许许多多的小&quot;控件&quot;单位做成的,我们在自己的程序中也可随意使用这些本属于Word的&quot;控件&quot;对象,只要把Word的对象库包含进来即可。要引用对象,1,&quot;工程&quot;菜单&quot;引用&quot;项,在出现的对话框中选中某个程序对象库的复选框,(如Microsoft Excel 9.0 Object Library,是Excel的对象库),2,如果不熟悉该对象库的语法及有关知识,可去&quot;视图&quot;菜单&quot;对象浏览器&quot;中看一看。3,在本程序代码中创建该对象库中某个对象实例,步骤是:<br>
 1,声明1个对象变量:如Dim x as object<br>
 2,用Set语句和CreateObject函数创建对象,格式为:<br>
 Set 对象变量=CreateObject(&quot;对象库中某对象&quot;) 引号不能丢。&quot;对象库中某对象&quot;都列出在对象浏览器中左边&quot;类&quot;框里面。<br>
 Set x = CreateObject(&quot;Excel.Application&quot;)<br>
 上例x就成了Excel库中1个Application对象的实例。<br>
 也有另一种简便法,就是直接用&quot;set 对象变量=new 对象库中某对象&quot;,和创建一般form或类模块对象一样,甚至可只用一句话&quot;Dim 变量 as new 对象库中对象名&quot;,如 dim x as new excel.application.<br>
 3,这时就可以进行引用了,在引用完后,要及时退出以释放内存。用Quit和给对象变量赋nothing值的办法。<br>
 例下:<br>
 Private Sub Command1_Click()<br>
 Dim x As Object 声明对象变量<br>
 Dim lxn<br>
 If Text1.Text &lt;&gt; &quot;&quot; And Text2.Text &lt;&gt; &quot;&quot; And Text3.Text &lt;&gt; &quot;&quot; Then<br>
 Set x = CreateObject(&quot;Excel.Sheet&quot;) 创建对象<br>
 lxn = x.Application.WorksheetFunction.Pmt _ 引用对象中的Pmt函数<br>
 (Text1.Text / 12, Text2.Text, Text3.Text)<br>
 MsgBox CCur(Abs(lxn)), , a<br>
 x.Application.Quit<br>
 Set x = Nothing<br>
 End If<br>
 End Sub<br>
 对象变量的作用是在程序中用来引用对象,在声明对象变量时,可把对象变量声明为特定对象类(即只含1种对象类型,如声明为按纽类Dim lxn as commandbutton),也可把对象变量声明为一般对象类(即含多种类型,如Dim lxn as object),声明为object使lxn可引用任何类型对象,象这种一般对象类有以下几个:<br>
 Form 可引用程序中的任何窗体;<br>
 Control 可引用程序中的任何控件;<br>
 object 可引用任何对象。<br>
 在代码中怎样动态地创建对象:我们以前创建对象都是在设计时通过&quot;工具箱&quot;画到窗体上去,而在代码中也可以创建,运行时只要经过这段代码时就可创建了,这叫动态创建:首先,要确定动态创建的对象类型,如按纽文本框等等;其次,在现有窗体上建立一个样本,将其index属性设为0(其实就是控件数组),--动态创建的对象将照搬这个样本;第三,在代码中用&quot;load 新对象&quot;加载,并设&quot;新对象.visible=true&quot;就可以了。至于&quot;新对象&quot;的代码名称,就是样本名加上新的数组下标,如样本为text1(0),则新对象可以为text1(1)。第四,在代码中对新对象作必要的属性方法事件改动。<br>
 注:动态创建的对象会包括样本设计时的一切属性方法事件,而对样本自身在运行过程中的改变则不会照搬。<br>
 以上是创建一般的对象,还有:窗体form对象及类模块中对象(还有对象库中对象)的创建如下:<br>
 用NEW关健字及Set语句:格式:<br>
 Dim 变量 as 现有窗体名(或类模块名、或对象库中某对象)<br>
 Dim lxn as form1<br>
 Set 变量=New 现有窗体名(或类模块,对象库中对象名)<br>
 Set lxn=new form1<br>
 也可以简单用 &quot;Dim 变量 as new 现有窗体名&quot;的方式。<br>
 新建窗体后要用 窗体变量.show来显示新窗体。注:new能动态创建窗体对象和类模块对象,以及对象库中对象。
 <p>补充两个逻辑运算符:EQV:两边表达式同真同假,结果为真,两边表达式一真一假,结果为假(是XOR的逆运算)<br>
   IMP:第1个表达式为真第2个表达式为假时结果为假,其余都为真。<br>
   循环结构的一个补充(较重要):For Each 元素变量 in 数组或集合<br>
   循环体<br>
   next 元素变量<br>
   这种结构提供遍历数组或集合中每个元素的方法(不用知道其中有多少个元素)。元素可用变量表示,如:<br>
   For Each lxn in Form1.Controls<br>
   lxn.left=lxn.Left+50<br>
   Next lxn<br>
   在代码中创建对象:以前用数组的方法来动态创建对象,实际可不用数组,直接在代码中创建,步骤:1。在(通用)中用WithEvents关健字声明1个对象变量,格式:<br>
   Private WithEvents 新对象名 as 控件类<br>
   private withevents text1 as textbox<br>
   WithEvents的作用是可在代码窗口对新创建对象编写事件过程。声明后,你可以在代码窗口的对象下拉框中找到这个对象变量。<br>
   2,在事件过程中用<br>
   Set 新对象=Controls.Add(&quot;vb.控件类&quot;,&quot;控件类&quot;)<br>
   set text1=controls.add(&quot;vb.textbox&quot;,&quot;textbox&quot;)<br>
   3,全面设置新对象的属性:由于要全部设置,所以会较多(不象直接画到窗体上那样有&quot;缺省属性&quot;),建议用with结构来进行。<br>
   例下:<br>
   Private WithEvents command1 As CommandButton '代码中创建对象</p>
 <p>Private Sub Form_Load()<br>
   Set command1 = Controls.Add(&quot;vb.commandbutton&quot;, &quot;button&quot;) '这句是关健,用<br>
   With command1 button也行。<br>
   .Caption = &quot;退出&quot;<br>
   .Visible = True<br>
   .Left = 1000<br>
   .Top = 1000<br>
   .Width = 800<br>
   .Height = 400<br>
   End With<br>
   End Sub<br>
   怎样检查剪贴板上是否有文本?用判断剪贴板clipboard对象的gettext中字符串长度是否大于0来检查(如使&quot;粘贴&quot;菜单自动失效),如下例:<br>
   If Len(Clipboard.GetText) &gt; 0 Then<br>
   mnupaste.Enabled = True<br>
   Else<br>
   mnupaste.Enabled=False<br>
   End If<br>
   在keydown事件中用组合键:如要求用户输入Ctrl+X键,则如下:<br>
   Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)<br>
   If KeyCode = vbKeyX And Shift = vbCtrlMask Then Unload Me<br>
   End Sub<br>
   shift的参数有vbAltMask(或4),vbCtrlMask(或2),vbShiftMask(或1),分别代表按下Alt,ctrl或shift键。</p>
 <p align="center">
        <br>
        &lt; <a href="050203.htm">上一页</a>--<a href="http://www.xxby.com" target="_blank">华生小屋</a>--<a href="050205.htm">下一页</a>     
        &gt;<br>
      </td>
    </tr>
  </table>
  </center>
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -