二、代码设计

1.设置变量

Dim i,j,k As Integer

2.单击“多个函数”按钮的事件代码

利用InStr函数可以找出子串在字符串中的起始位置,利用Len函数求出子串的长度,利用Left函数取出子串前面的字符,Mid函数取出子串后面的字符。

    Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As
      System.EventArgs)Handles Button1.Click
      i = InStr(TextBox1.Text,TextBox2.Text)
                '在TextBox1中查找出现TextBox2内容的位置存放在i变量中
      k = i + Len(TextBox2.Text)
      TextBox4.Text = Microsoft.VisualBasic.Left(TextBox1.Text,i -1)
                      + TextBox3.Text + Mid(TextBox1.Text,k)
    End Sub

3.单击“替换函数”按钮的事件代码

直接使用Replace函数进行替换。代码如下。

    Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As
      System.EventArgs)Handles Button2.Click
      TextBox4.Text = ""
      TextBox4.Text = Replace(TextBox1.Text,TextBox2.Text,TextBox3.Text)
    End Sub

4.单击“调用Word”按钮的事件代码

    Private Sub Button3_Click(ByVal sender As System.Object,ByVal e As
      System.EventArgs)Handles Button3.Click
      i = Shell("C:\Program Files\Microsoft Office\Office14\winword.exe",1)
      '调用Word 2010,具体路径参考当前使用的计算机
    End Sub

5.设置窗口标题滚动效果

利用时钟控件,在设计时设置时钟的Enabled属性值为True,使得只要启动程序,时钟就会自动启动。

    Private Sub Timer1_Tick(ByVal sender As Object,ByVal e As System.EventArgs)
      Handles Timer1.Tick
      Me.Text = Space(35- j)& "查找与替换"
      '随着j的增加,空格数减少,视觉上窗口标题栏字符串向左移动
      j = j + 1
      If j > 35 Then j = 0
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object,ByVal e As
      System.EventArgs)Handles Button4.Click
      TextBox4.Text = ""
    End Sub

注意

(1)Left可以是函数名也可以是属性名,因此当作为函数使用时,应加上前缀“Microsoft. VisualBasic.”。

(2)用Me来表示当前窗体,不能使用Form1。

(3)使用替换函数Replace函数可以将主串(TextBox1)中的子串(TextBox2)全部替换为要替换的子串(TextBox3)。使用多个函数进行查找,只能替换掉一个字符串,若主串(TextBox1)中含有多个要替换的字符串,则不能全部替换,当替换完第一个字符串时,可以将按钮的标题改为“下一个”,单击该按钮,重新执行一次查找和替换。当变量i的值小于等于0时,表示全部替换完毕。“多个函数”按钮的事件过程修改如下。

    i = InStr(TextBox1.Text,TextBox2.Text)
    If i > 0 Then
      k = i + Len(TextBox2.Text)
      TextBox4.Text = Microsoft.VisualBasic.Left(TextBox1.Text,i -1)
                      + TextBox3.Text + Mid(TextBox1.Text,k)
      Button1.Text = "下一个"
      TextBox1.Text = TextBox4.Text
    Else
      MsgBox("全部替换完!")
      Button1.Text = "多个函数"
    End If

试一试

1.编写一个程序,具有以下功能:在文本框中输入书名后单击“添加”按钮,如果书名中含有“计算机”三个字,将书名列在左面的标签中,否则列在右面的标签中。然后清除文本框中的内容,并将插入点重置于文本框中,界面如图2-8“书名”程序界面所示。

图2-8 “书名”程序界面

提示

① 判断书名是否含有“计算机”三个字的表达式为

    TextBox1.Text Like "*计算机*"

② 将文本框中的书名添加到标签Label2中的语句是

    Label2.Text = Label2.Text & vbCrLf & TextBox1.Text

拓展:如果要判断书名中不含“计算机”三个字,应如何编写程序?

2.编写一个程序,其窗体上有2个文本框和1个标签,当在左面的文本框中输入一个字符,在右面的文本框中立即显示出该字符,并将该字符插入最前面。同时在窗体的标题栏上显示出共输入了几个字符。例如,依次输入字母a、b、c,在右面的文本框中依次显示:a、ba、cba,在标签栏上先后显示:输入了1个字符、输入了2个字符、输入了3个字符。如图2-9“倒序的字符”程序界面所示。

图2-9 “倒序的字符”程序界面

提示:在文本框的KeyPress事件过程中编写程序,用e.KeyChar获得当时按键的字符。