1、如果一行程序太长,查阅起来很麻烦,能不能换行?
VB的程序代码是允许换行书写的,只要在每次换行的最后一个字符加上换行字符“_”就可以了。例如:
Sub PicMove()
Frm.Picture2.Left = Frm.Picture1.Left + _ ’加上换行符
Frm.Picture1.Width
End Sub
2、如何在设计的时候清空存在的图片?
用鼠标点中该图片,在属性窗口中选中Picture属性,按Del键便可清空图片。
3、Visual Basic 如何注释一段较长程序代码?
VB注释程序代码的符号是“'”,只要在某行程序前面加上“'”,就可以注释该行程序。但如果程序代码很长的时候,一行一行地注释令人觉得难以忍受。VB本身提供了这个功能,在主菜单“视图”选项的“工具栏”下,选中Edit,VB的界面会出现一排工具按钮,其中的手形图标按钮后的两个按钮用于“设置注释块”和“解除注释块”。
4、怎么实现鼠标一移上去就出现小提示窗口的功能?
VB 里每个控件都有ToolTipText属性,只要加上一行程序就可以了。
例如:Label1.ToolTipText = "这是提示!"。
5、如何获得当前软件的运行磁盘目录和命令行参数?
VB里面有个系统对象叫App。App.Path就是当前软件的运行目录。而命令行参数存放在一个系统变量里面,叫Command。程序语句如下:
Label1.Caption=App.Path
Label2.Caption=Command$
6、我想换掉鼠标显示的形状,怎么做?
VB提供的系统控件一般都有MousePointer和MouseIcon属性。我们可以寻找自己喜欢的*.ICO,*.CUR文件,实现的程序如下:
Screen.MousePointer= 99 ’用户鼠标类型
Screen.MouseIcon=LoadPicture("C:/ABC/1.ICO") ’读取鼠标的图标文件
7、如何设置程序的错误出口?
On Error语句用于程序的错误出口处理。一般的处理方法有两种。
1) 遇到错误跳转到某一行程序去执行,On Error GoTo someline。
例如:
On Error GoTo ERR_LINE
...
Label1.Caption=“正确执行”
ERR_LINE:
...
Label1.Caption=“出错了!”
2) 遇到错误之后忽略当前错误,继续执行,On Error Resume Next。
例如:
On Error Resume Next
...
Label1.Caption=“不管对不对都要执行”
...
8、怎样获得键盘输入和判断敲键的Ascii值?
把窗体的KeyPreview属性设置成True,然后在Form_KeyPress 事件里编写程序代码如下:
Private Sub Form_KeyPress(KeyAscii As Integer)
Me.Caption = Str(KeyAscii) ‘取得键盘输入的字符
...
End Sub
9、我希望窗体一运行就在屏幕的中央,怎么实现?
VB的系统对象Screen记录了当前显示模式的高度和宽度,可以利用这个值来设置窗体的位置。
Sub CenterForm(frm As Form) ‘定义过程
frm.Move (Screen.width - frm.width) / 2, (Screen.Height - frm.Height) / 2
End Sub
Private Sub Form_Load()
CenterForm Me ’调用过程
End Sub
10、很多软件都有鼠标在文本框TextBox一按下,就选中所有文字的功能,是怎么实现的?
Private Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text) ’过程调用
End Sub
11、如何屏蔽列表框Combo的键盘输入?
Private Sub Combo1_KeyPress(KeyAscii As Integer)
KeyAscii=0 ‘ASCII码为0的字符是空操作
End Sub
12、如何使一行字符串垂直显示?
’自定义函数RotateString:垂直显示字符串
Function RotateString(in_str As String) As String
Dim tmpstr As String
’把每个字符都取出来加上回车换行符号
For i = 1 To Len(in_str)
tmpstr = tmpstr + Mid$(in_str, i, 1) & vbCrLf ‘ vbCrLf是回车换行符
Next i
RotateString = tmpstr
End Function
‘函数调用
Private Sub Form_Click()
Label1.Caption = RotateString("你知道我在这里吗?")
End Sub
13、我想在窗体中按下鼠标右键就弹出一个菜单,怎么做?
首先按下菜单编辑器设计一个菜单PopMenu,把菜单的Visible设置成False。在Form_MouseDown事件中编写程序如下:
If Button = 2 ’鼠标右键按下
PopupMenu PopMenu
End If
14、Visual Basic里面的整数和字符串如何互相转换?
VB提供了系统函数Val()和Str(),可以用来实现整数和字符串之间的转换。
例子如下:
Sub Str2Int()
Dim int1 As Integer
Dim str1 As String
int1=100
str1=Str(int1) ‘整数转换成字符串
Debug.Print str1
str1=“400”
int1=Val(str1) ‘字符串转换成整数
Debug.Print int1
End Sub
15、我可以在一个窗体里执行别的窗体的程序代码吗?
是可以的,我们可以用“窗体.代码”的模式去执行别的窗体的代
码。先假设我在窗体frm2里要执行窗体frm1的Form_Click代码,程
序如下:
Private Sub Form_Click()
frm1.Form_Click() ’在frm2里执行frm1的From_Click代码
End Sub
16、如何在不改变数组内容的情况下重定义数组的范围?
ReDim可以用来重新定义数组的范围,重定义后还要保留数组的原值,可以用Preserve说明。
例如:
Sub ReDim_Data()
Dim tmpdim() as Integer ’定义一个未知范围的数组
ReDim tmpdim(10) ’设定数组的范围
tmpdim(0)=1
tmpdim(1)=2
ReDim Preserve tmpdim(20) ’重新设定数组的范围,并保留数据
Debug.Print tmpdim(0), tmpdim(1),
End Sub