VB基础语法

一 基础概念

1.1变量

  1. 变量的定义格式:Dim | Private | Static | Public 变量名 As 数据类型
  2. Dim | Private | Static | Public : 就是我之前所说的权限的意思。
  3. As 数据类型 :这个是可选项,你可以为这个变量设置数据类型。
  4. Dim num As integer
  5. 如果某变量在很多过程中都会用到,可将其声明为全局变量,否则直接生命在过程中,过程结束会自动释放空间
  6. 声明在模块中(局部变量):
    在这里插入图片描述
  7. 全局变量
    在这里插入图片描述

1.1.1运算符

  1. 加号“+”:可实现想加相连接如果两个值都是字符串则表示相连:
  2. 在VB中就提供了两种连接用的字符串运算符 “&”、“+”

例如 “VB”+“编程入门” 就等同于“VB编程入门”

“VB”&“编程入门” 就等同于“VB编程入门”

说明: 在字符串数据后面使用“&” 时,应该在运算符和字符串之间加一个空格 “A” & “B” 二不是"A"&“B”

原因是应为,”&“也是整型的类型说明符,如果没有空格的话,程序运行的时候,系统就会默认为他只是一个 类型说明符,单个的类型说明符赤裸的出现在代码中就会报错。

1.1.2类型转换

  • CType(X)
    [格式]:
    P=CBool(X) ’ 将X转换为"布尔"(Boolean)类型
    P=CByte(X) ’ 将X转换为"字节"(Byte)类型
    P=CCur(X) ’ 将X转换为"金额"(Currency)类型
    P=CDate(X) ’ 将X转换为"日期"(Date)类型
    P=CDbl(X) ’ 将X转换为"双精度"(Double)类型
    P=CInt(X) ’ 将X转换为"整型"(Integer)类型
    P=CLng(X) ’ 将X转换为"长整型"(Long)类型
    P=CSng(X) ’ 将X转换为"单精度"(Single)类型
    P=CStr(X) ’ 将X转换为"字符串"(String)类型
    P=Cvar(X) ’ 将X转换为"变体型"(Variant)类型
    P=CVErr(X) ’ 将X转换为Error值
  • 默认textBox中内容为String类型,如果直接相加起到的是链接的作用,用Cint转换数据类型后才能起到相加的作用。
    在这里插入图片描述

在这里插入图片描述

1.2控制结构

1.2.1选择语句

Selcet case 测试表达式
case 表达式1
	语句
case 表达式2
	语句
case 表达式3
	语句
case else
	语句
end select
  • 先计算测试表达式的值,然后用这个值去跟case 后面的值进行匹配,如果匹配成功就执行下面的语句,如果上面的case都不成功就执行case else下面的语句,然后结束
dim a as integer
a = 2
select case a
case 1
    print "1"
case 2
    print "2"
case else
    print "没有"
end select

1.2.2 for循环结构

  • for a = 3 to 10 就是第一次放3个,他每次会比前一次+1个 放到一次放10个就停止
  • for a = 1 to 10 2 ,2是步长,这个的意思比较特别,他第一次放1个,每次会比前一次多放两个,直到放到一次性放进去十个或者超出去为止
  • for a=100 to10 step -1
    在这里插入图片描述

总结:

for start to end

  • 语句

next start

定义一个数,start 每次会 +1 加到end或者超过end的值就停止,每+1一次就会执行 “语句”

语句就是每次都要做的动作

'例子1: 求 1加到5'
dim a,sum
sum = 0
for a = 1 to 5
	sum = sum + a
next a


'例子2:求5! '
dim a,sum
sum = 1
for a = 1 to 5
	sum = sum * a
next a

'例子3:输出5次你好'
dim a
for a = 1 to 5
	print "你好"
next a

1.2.3多重循环

'打印矩阵'
dim row ,col
for row = 1 to 5
	for col = 1 to 5
		print "*"
	next col
	print
next row

'打印结果:'
*****
*****
*****
*****
*****

1.3一维数组

  • ReDim 语句
    在这里插入图片描述
    可以使用 ReDim 语句来更改某个已声明数组的一个或多个维度的大小。 如果数组较大,并且你不再需要它的某些元素,ReDim可通过减少数组大小来释放内存。 另一方面,如果数组需要更多元素,也可使用 ReDim 进行添加。

ReDim 语句仅供数组使用。 它对标量(仅包含单个值的变量)、集合或结构无效。 请注意,如果将变量声明为 Array 类型,则 ReDim 语句将没有足够的类型信息来创建新数组。

  • 定义格式:Dim array(20) as 数据类型
dim i
dim arry(50) as integer
for i = 0 to 49
	arry(i) = i
	System.Console.WriteLine(Arry(i)) '输出数组元素
next i
这样就为arry(0) 赋值为 0
arry(1) 赋值为 1
  • Array.Length 获取 Array 的所有维度中的元素总数。
 '定义数组
        Dim Arry(10) As Integer
        For i = 0 To Arry.Length - 1
            Arry(i) = i
            System.Console.WriteLine(Arry(i))
        Next
  • 以下示例演示如何在其空格处拆分字符串。
  Dim testString As String = "Look at these!"
        ' Returns an array containing "Look", "at", and "these!".
        Dim testArray() As String = Split(testString)
        For i = 0 To testArray.Length - 1
            System.Console.WriteLine(testArray(i))
        Next

1.4多维数组

  • 第一种复制方式:
 Dim array2d(,) As String = {{"zero", "0"}, {"one", "1"},
                                     {"two", "2"}, {"three", "3"},
                                     {"four", "4"}, {"five", "5"}}
        ShowArrayInfo(array2d)
  • 第二种赋值方式:
  '二维数组
        Dim ArrayT(2, 3) As String '三行两列
        ArrayT(0, 0) = "姓名"
        ArrayT(0, 1) = "电话"
        ArrayT(0, 2) = "生日"
        ArrayT(1, 0) = "老王"
        ArrayT(1, 1) = "115"
        ArrayT(1, 2) = "1月2日"
        For n = 0 To 1
            For m = 0 To 2
                Console.WriteLine(ArrayT(n, m))
            Next
        Next

在这里插入图片描述

1.5类与对象

1.5.1类,对象

  • 工具箱中每一个控件按钮都代表一个,将其添加到窗体上就建立了相应的对象。对象具有类定义的公共属性,方法和事件。
  • 设置属性方法:(1)可以在属性窗口设置(2)也可以在程序运行中更改对象的属性。对象名.属性名=属性值
  • Command1.caption=“确定” 设置命令按钮的标题
  • Test1.text=“VB程序设计” 设置文本框的内容
  • 注释选中行与取消注释:
    在这里插入图片描述
    对象变量:
    在使用对象模型的属性、方法和事件之前,必须创建一个对包含所需属性、方法和事件的类的引用。可以先声明一个局部对象变量以存储该对象引用,然后把对象引用赋给该局部变量。
    声明对象变量的方法和声明其他类型的变量基本上一样。有三种声明对象变量的方法:
    (1) Dim myObject As <库名>.<类名>
    此方法指向类的类型库,但没有给该变量赋予任何类的实例。此时,变量myObject被赋值为Nothing。若要用这种方式引用类,就必须利用“引用”对话框向工程添加一个对类模块的引用。若要将类的实例引用赋予该变量,必须在使用该变量之前用Set语句赋值。如:
    Set myObject=<库名>.<类名>
    (2) Dim myObject As New <库名>.<类名>
    此方法将类的新实例引用赋给Object变量。同样,要用这种方式引用类,必须先利用“引用”对话框向工程添加一个对类模块的引用。
    (3) Dim myObject As Object
    此方法将myObject变量声明为一般的Object数据类型,这在不能预先知道要创建的对象的数据类型时十分有用。此时,Object变量被赋值为Nothing。若要将对象引用赋值给该变量,必须使用CreateObject函数或GetObject函数。
    可以用Private或Public语句替换Dim语句,且对象变量的作用域规则和其他类型的变量一样。
    声明对象变量可以显著地简化代码且加快代码的执行速度。

1.5.2方法的调用

  • 对象名.方法名(参数)
  • Forml.Cls 消除窗体Forml上的内容
  • Forml.Print “VB” 在窗体上显示VB

1.5.3子程序

  • 应用程序设计的主要工作就是为对象编写事件过程的代码。
  • 事件过程的框架形式:
  • Sub 对象名_事件(参数)
  • …过程代码
  • End Sub
  • 在这里插入图片描述
    Button1点击事件,点击后文本框显示hello.
    在这里插入图片描述
  • 我们自己写的事件过程,需要被调用才能起作用。
    -无参事件:
    在这里插入图片描述
  • 有参事件:
    在这里插入图片描述 - 在Button事件中被调用:Call 子程序名称()。 - Call语句:将控制转移到 Function、Sub 或动态链接库 (DLL) 过程。
[ Call ] procedureName [ (argumentList) ]
组成部分说明
argumentList必需。 要调用的过程的名称。
procedureName可选。 变量或表达式的列表,它们表示在调用过程时传递给过程的参数。 多个参数之间用逗号分隔。 如果包含 argumentList,则必须用括号括起来。

1.无参数:

Sub TestCall()
    Call (Sub() Console.Write("Hello"))()

    Call New TheClass().ShowText()'类的调用
End Sub

Class TheClass
    Public Sub ShowText()
        Console.Write(" World")
    End Sub
End Class
  Private Sub Label1_BackColorChanged(sender As Object, e As EventArgs) Handles Label1.BackColorChanged
        MsgBox("lable1背景颜色被改变了")
        Call 子程序名称()
    End Sub

    Private Sub 子程序名称()
        Dim a As Integer = 5
        MsgBox(a)
    End Sub

2.有参数:
(1)默认是按值传递ByVal可以省略,
(2)按地址传递: ByRef

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Text = "确认"
        Label1.BackColor = Color.Red
    End Sub

    Private Sub Label1_BackColorChanged(sender As Object, e As EventArgs) Handles Label1.BackColorChanged
        MsgBox("lable1背景颜色被改变了")
        Call 子程序名称("5"End Sub

    Private Sub 子程序名称(ByVal 参数名 As IntegerDim a As Integer = 参数名
        MsgBox(a)
    End Sub
End Class

(3)可选参数:option必须赋值,调用函数时,如果没有赋值给可选参数位置,使用其初始赋值。并且可选参数必须位于最后,即其他参数之后。
在这里插入图片描述

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Button1.Text = "确认"
        'Label1.BackColor = Color.Red
        Dim B As Integer = 函数名12, 3)
        MsgBox(B)
    End Sub

  Private Function 函数名1ByVal 参数1 As IntegerByRef 参数2 As Integer, Optional A As Integer = 3)
        MsgBox(A)
        Return 参数1 + 参数2
    End Function

1.5.4函数定义

在这里插入图片描述

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Button1.Text = "确认"
        'Label1.BackColor = Color.Red
        Call 函数名1()'调用函数
    End Sub
    
    '定义函数,与子程序类似
    Private Function 函数名1()As As Integer
        MsgBox("12345")
    End Function

1.5.5 Sub 与 Function 在VB程序设计中的区别

- Private Sub 与 Function 在VB程序设计中的区别

  • function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有
  • function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值。

- Sub 过程与Function 过程的区别:

1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。
2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。
3. 调用过程:调用 Sub 过程与 Function 过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。

-调用 Sub 过程有两种方法:

以下两个语句都调用了名为 MyProc 的 Sub 过程。
Call MyProc (FirstArgument, SecondArgument)
MyProc FirstArgument, SecondArgument
注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号

1.6对象的通用属性

  • 设置属性方法:(1)可以在属性窗口设置(2)也可以在程序运行中更改对象的属性。对象名.属性名=属性值
  • Name属性:对象名称,例如Form1,Command1,Text1,Label1等,名称作为对象的标识在程序中引用。
  • Caption属性:对象的标题,决定标题上显示的文本。
  • Height,Width属性:对象的高度,宽度。
  • Top,Left属性:对象的位置,对于窗体来说,表示窗体距离屏幕顶边,左边的举例。对于对象来说,表示对象距离窗体…
  • Enabled属性:可用性,决定对象是否是否可用,属性值为true表示可用,False表示不可用,呈灰色。
  • Visible属性:可见性。决定程序运行时对象是否可见。属性值为true表示对象可见,False表示隐藏。
  • ForeColor,BackColor:设置前景色,后景色。
  • Default属性:当一个命令按钮属性的Default属性时ture时,此按钮是窗体 的默认按钮,当用户按下回车键,不管当前输入焦点在哪个控件上,都相当于点击了该按钮。
  • Label中的AutoSize:属性设置为ture后外框自动适应文字大小。设置完ture后不可再通过size手动更改宽与高的数值
    在这里插入图片描述在这里插入图片描述
  • 窗体form中的ControBox属性:控制窗体form窗体的右上角三个按钮是否显示。
    在这里插入图片描述
    在这里插入图片描述
  • ShowInTaskbar:为true时,使运行后的窗体显示在任务栏。
    在这里插入图片描述

1.7窗体对象常用事件

  • 事件是指对象能够识别并做出反应的外部刺激 。窗体事件过程的语法:
  • Private Sub Form_事件名()
  • End Sub

1.7.1Load事件

  • 这是窗体加载事件,也就是说,在窗体启动的同时就执行这个事件里的代码。
    比如说你窗体上添加了一个文本框(Text)控件。你在Form_load中加入一下代码:
    Private Sub Form_Load()
    Text1.text=“Visual Basic”
    End sub

那么,你启动程序后,窗体中文本框上便是"Visual Basic"。
因为它先执行了form_load事件中的代码。

1.7.2Click事件和弹窗MsgBox()函数

  • Click事件是鼠标点击事件,此事件无参数。语法结构:
  • Private Sub form_Click()
  • 虽然无参数但括号不可省略。
  • MsgBox()函数输出括号内容,弹窗的作用。
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Label1.Text = "你好"
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Button2.Text = 123
        Button2.BackColor = Color.Aquamarine
        Button1.BackColor = Color.Aquamarine '可以改变其他控价属性
        MsgBox(Label1.Text) '当点击Button2时出现弹窗并显示Label1中的内容


    End Sub
End Class

1.7.3点击按钮出现新窗体

  1. 创建窗体Form1,Form2
  2. 在Form1中添加按钮Button1,进入代码编辑页面
 Private Sub Button1_Click() 
	Form2.Show   
 end Sub

1.7.4什么是控件提示?

  • 将鼠标放在控件上按F1会调出帮助文档
    在这里插入图片描述

  • 控件Button.自动提示中扳手代表属性,紫色正方体代表自带的方法。在这里插入图片描述

  • 控件提示是说明控件、页面或标签的简洁短句。当鼠标指针在一个控件上停留片刻,而不单击时,就会出现控件提示。控件提示和工具提示非常相似。

  • 选定所需控件。选择“属性”窗口中的 ControlTipText 属性。 也可以通过编写代码来设置 ControlTipText 属性的值。

在这里插入图片描述

1.7.5向工具箱添加新控件

  1. 请在“工具箱”中的任意控件的图标上或任意页面的空白区域上单击鼠标右键。
  2. 单击快捷菜单中的“附加控件”命令。
  3. 从“可以使用的控件”列表中选择新的控件。
  4. 单击“确定”按钮。

1.7.6sstab控件实现多页面操作

  1. 常用属性:
    在这里插入图片描述
    2.通过设置tabs属性值,添加一个tab后不在同一行
    在这里插入图片描述
  2. 解决办法:sstab属性卡里有一个属性:TabsPerRow ,返回或者设置在每一行出现的选项卡号。比如你有4个TAB页,这里设置4,那么4个TAB页就都在一行显示了。
    在这里插入图片描述
    解决后:
    在这里插入图片描述
    在这里插入图片描述
  • 22
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
vb基础教程我们需要什么?当我们在一个精彩的游戏世界中游历了一番之后,或是惊叹于某一工具软件的小巧精致之余,多少总会产生些许编程的冲动。编程吗,在以前如果你对电脑还是一个门外汉,那实在是一件可望而不可及的事情。如果运用基于DOS下的编程语言,譬如C、Qbasic、Pascal等等,真不知何年何月才能有所成就。   编程是需要天赋的,你必须在大脑中对整个程序有一个清晰的轮廓,一个高效的流程,这并不是每个人都能做到的,你必须思之慎之,这也使编程变成一件最枯燥无味的事情。但在第四代计算机语言(可视化编程)出现后,可以确切的说它开发了人们的更多天赋,并不局限于那些头脑异常清晰的人,每一个人都可以发现自己也可以编出一些从前不敢问津的程序,想象力的充分发挥才是第四代语言的精粹。   Visual Basic(以下简称VB)可以说是可视化语言的先驱了,而且它也是可视化程度最高的一个,从几年前VB诞生之日起到现在,它已经经历了五个版本,而且现在微软正在紧张的进行着VB6.0的研制、测试,这么高的更新率,不外乎说明两个问题:用户对VB的热衷,微软对VB的重视。不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在不长的时间内有成为最有力的竞争对手,如IE之于浏览器领域,《帝国时代》之于游戏都是最好的例证。对于VB现在也有一个很强的竞争对手――Delphi,有人把它称作VB杀手,这显然有偏激之处,VB的确有它的不足之处,但Delphi又何尝不是呢,而且以微软对VB的倾心,VB的功能必然会越来越强大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰勒今天想展开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值