050202.htm

来自「提供一个VB学习教程,入门级。来源于网上」· HTM 代码 · 共 245 行 · 第 1/2 页

HTM
245
字号
<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>
        1。将要拖放对象的dragmode属性设置为1(这样就可自动拖动)<br>
        2。设置要拖放对象在拖动过程中的图标提示:dragicon属性。<br>
        3。编写拖放终点对象的dragdrop事件(或dragover事件)过程。<br>
        例:将窗体上图片框1的图片拖到图片框2里:<br>
        Private Sub Form_Load()<br>
        Image1.Picture = LoadPicture(&quot;c:\我的文档\my webs\红楼梦4.bmp&quot;) 加载图片<br>
        Image1.DragMode = 1 对象可移动 <br>
        Image1.DragIcon = LoadPicture(&quot;c:\ucdos\ico\print.ico&quot;) 移动时的图标<br>
        End Sub
        <p>Private Sub Image2_DragDrop(Source As Control, X As Single, Y As Single)<br>
          Image1.Visible = False 当移到图片框2时,图片框1隐藏。<br>
          Image2.Picture = Image1.Picture 将图片复制到图片框2中<br>
          End Sub<br>
          在image2的dragdrop事件中有三个参数:source和x以及y,source的意思是&quot;源对象&quot;,即要拖动对象,这里可用它来代替image1,如在事件过程中写:source.visible=<br>
          false image2.picture=source.picture<br>
          ★ 在窗体中添加简单的动画:对象的移动 MOVE 方法:<br>
          要移动的对象.MOVE 移动后横坐标,纵坐标,宽度,高度<br>
          picture1.move 800,500 (单位:缇;1缇=1/1440英寸<br>
          用MOVE方法不仅可以移动对象位置,而且可以改变对象的尺寸大小,如下:<br>
          对象名.move left,top,width,height<br>
          Form1.Move 5000, 0, 5000, 50 (注:单位为缇)<br>
          例:Private Sub Form_Load()<br>
          Picture1.Picture = LoadPicture(&quot;c:\我的文档\my webs\红楼梦1.bmp&quot;)<br>
          Timer1.Interval = 1<br>
          Timer2.Interval = 1<br>
          Timer1.Enabled = True<br>
          Timer2.Enabled = False<br>
          End Sub</p>
        <p>Private Sub Timer1_Timer()<br>
          If Picture1.Left &gt; 0 And Picture1.Top &gt; 0 Then<br>
          Picture1.Left = Picture1.Left - 50<br>
          Picture1.Top = Picture1.Top - 70<br>
          Else<br>
          Timer2.Enabled = True<br>
          Timer1.Enabled = False<br>
          End If<br>
          Picture1.Move Picture1.Left, Picture1.Top<br>
          End Sub</p>
        <p>Private Sub Timer2_Timer()<br>
          If Picture1.Left &lt; 5000 And Picture1.Top &lt; 3000 Then<br>
          Picture1.Left = Picture1.Left + 50<br>
          Picture1.Top = Picture1.Top + 70<br>
          Else<br>
          Timer1.Enabled = True<br>
          Timer2.Enabled = False<br>
          End If<br>
          Picture1.Move Picture1.Left, Picture1.Top<br>
          End Sub<br>
          ★ 添加标准模块:&quot;工程&quot;菜单&quot;添加模块&quot;菜单项。module 1是缺省模块名。此名字可在其属性窗口中改变(只有此一项&quot;属性&quot;)。标准模块与窗体模块并列于一个工程之内。<br>
          在标准模块中声明公用变量(或叫全局变量)格式:<br>
          public 变量名 as 类型<br>
          public lxn<br>
          在前面我们用DIM定义变量,它们都只是局部变量,即只在某个事件过程中可见,而在标准模块中定义的全局变量,则在整个工程中可见,即定义一次之后在其它任何事件中可直接访问。<br>
          在标准模块中创建通用过程:通用过程在整个程序中可见。象全局变量一样。<br>
          可创建三种类型的通用过程:函数过程 ,子过程(也叫sub过程) ,属性过程<br>
          函数的语法格式:public function 函数名(形参表) as 返回值类型 (这个&quot;as返回值类型&quot;不能丢!!) 函数体<br>
          函数名=返回值<br>
          End function<br>
          在事件过程中调用函数的方式为:变量=函数名(实参) --它代表一个确定值,本质是一个变量,可以出现在变量可出现的任何地方。<br>
          附出错经验一则:我想在一个事件中用个变量a,使第一次单击该事件时a=1,第二次单击该事件时a=2;第三次单击该事件时a值为3,即自增1的运算,我在事件中写:dim a<br>
          a=1 <br>
          a=a+1<br>
          可每次单击都得到同一个值2,原来,这是因为a是该事件中的局部变量,<br>
          每单击一次就重新执行一次,后来,我想在form_load()事件中写:dim a a=1,<br>
          然后在 该事件中只写 a=a+1,结果却变成a每次都是1,怎么回事?form_load事件不是每次程序运行时自动运行的吗,没错,但form_load本身也只是一个事件,在其中定的变量<br>
          dim a也属局部变量,只在form_load一个事件中可见,因此在另一个事件中用到的a根本没定义,如何定义一个变量在同一个窗体模块中各事件均可见呢?那就是在&quot;(通用)&quot;部分进行变量的声明,这样在该窗体模块中都可见,但通用部分不能直接进行赋值等运算(可按格式编写函数,子程序等等,同标准模块),参考办法:(通用):dim a form_load():(在其他事件也可,只要在引用a值的那个事件前能赋a=1即可)a=1 引用a的事件:a=a+1<br>
          ,&quot;对象.属性名&quot;的本质是一个变量,是在该窗体模块(通用)中缺省声明的变量<br>
          在标准模块中创建子过程:格式:public sub 子过程名称(形参) --此处要括号<br>
          过程体<br>
          end sub<br>
          函数与sub过程的不同是:函数用其名字返回一个值,子过程处理一段程序过程,无返回值。<br>
          在标准模块子过程中设置某个对象属性时,必须指明哪个窗体,如:public sub lxn()<br>
          form1.image1.visible=true end sub 其中那个&quot;form1.&quot;不能丢。<br>
          在事件中调用子过程的格式: 子过程名称 实参 --这里的实参不要用括号,如果调用时作为表达式才要括号,多个实参用逗号分开。<br>
          不论是函数或是sub过程,其形参与实参之间必须保证类型与数量的一致。<br>
          ★ 在文本框的一个输入字符串尾加上&quot; &amp; chr(13)+chr(10)&quot;,它能自动换行。或者用VB的常数vbCrLf也可换行。相当于C中的&quot;\n&quot;.如:a$=&quot;李新宁&quot; &amp; chr(13)+chr(10) text1.text=a$<br>
          ★ 什么是集合? 集合是一组相关的对象。<br>
          窗体上的全部对象被称作controls(控件)集合,如果一个程序有多个窗体,就要在前面加上窗体名称,如:form1.controls,每个窗体都有一个controls集合。这种&quot;集合&quot;被视作也是该窗体的一个对象,它与窗体的关系地位有点象windows的文件夹。可以通过集合引用其中的对象,格式一,直接使用(集合名!元素):<br>
          窗体名称.controls!对象名称.属性=属性值<br>
          form1.controls!label1.caption=&quot;李新宁&quot;<br>
          注:其中的感叹号是controls集合与对象的连接符号<br>
          格式二,采用该对象在controls中的索引值(集合名(索引)):<br>
          窗体名称.controls(索引值).属性名=属性值<br>
          form1.controls(1).caption=&quot;李新宁&quot;<br>
          注:一个对象在其所在窗体controls集合中的下标是如何排列的呢?--按对象创建时的顺序逆向确定其下标值,最后一个创建的对象下标为0,倒数第二创建的那个对象下标为1,如果该窗体共有n个对象,那么一开始创建的那个对象的下标为n-1.<br>
          集合的运用:FOR EACH…IN…NEXT 循环 ,对一组对象(对象组)的操作。<br>
          格式:FOR EACH 对象变量 IN 集合名<br>
          对当前对象的操作过程<br>
          NEXT对象变量<br>
          以上用于对一组对象的操作,例如将窗体上所有对象的位置向左移1000缇:<br>
          Private Sub Command1_Click()<br>
          For Each lxn In Controls lxn是&quot;当前对象&quot;的&quot;替身&quot;<br>
          lxn.Left = lxn.Left + 1000 将当前对象的left属性加1000<br>
          Next lxn 下一个controls里的成员<br>

⌨️ 快捷键说明

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