在前面两节里,我们学到了 VB 的操作方法,以及 Label 与 TextBox 控件的使用方法,现在我们用这两节学到的知识来做一个简单的文本编辑器。
一、程序最终目的:
用户可以在程序的编辑窗口输入文本;对输入的文本可以进行复制、粘贴、清除操作;另外,还能在两个标签上分别显示选中文本的起始位置、选中文本的长度。
二、界面设置:
根据程序的要求,我们需要制作一个文本框控件(TxtContent),它将做为程序的输入窗口;另外还有四个按钮,分别是复制按钮(CmdCopy)、粘贴按钮(CmdPaste)、清除按钮(CmdClear)、退出程序按钮(CmdQuit);此外,还需要两个用来显示所选文本起始位置的标签一(LblStart)和显示所选文本长度的标签二(LblLength)。
最终界面如图一:
图一
请大家仿照图一制作。
三、属性设置:
如图一所示,但请注意,文本框控件的 Multiline(多行)属性要设置为 True ,这样,文本框才能自动换行。如图二:
图二
四、程序书写:
1、文本框(TxtContent)的鼠标事件:
对文本的选择,可以理解为这样的过程:先在欲选择的文本前点击鼠标,按下左键不放,拖动鼠标直到选择文本的结束处,最后松开鼠标。这说明,松开鼠标代表着文本选择的结束,从而应该在文本框的鼠标弹起事件(MouseUp)中书写代码,以改变两个标签的标题。
具体代码如下:
Private Sub TxtContent_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) '括号中这一长串内容大家不必管它,这主要是产生位移时的坐标变动。 LblStart.Caption = "起始位置:" & TxtContent.SelStart LblLength.Caption = "文本长度:" & TxtContent.SelLength End Sub |
注意:这个 “&”符号表示将两个字符串连接起来。另外如: A & B ,结果是 AB ;ABC & EFG ,结果是 ABCEFG ,等等。
2、复制按钮的点击事件:
Private Sub CmdCopy_Click() Clipboard.SetText TxtContent.SelText End Sub |
3、粘贴按钮的点击事件:
Private Sub CmdPaste_Click() TxtContent.SelText = Clipboard.GetText End Sub |
4、清空按钮的点击事件: