回 帖 发 新 帖 刷新版面

主题:[讨论]请教代码的运行修改

Private Sub Form_keypress(keyascii As Integer)
'Esc键退出,vbescape可以用27代替
If keyascii = vbescape Then End
End Sub
Private Sub form_keydown(keycode As Integer, shift%)
'处理ctrl+X,Alt+X
If shift = 2 And keycode = vbKeyS Then
Print #filenum, Form1.Text1.Text   'Ctrl+S 存盘,vbkeyS=83
If shift = 2 Then
Form1.WindowState = 1 'shift最小化
If shift = 4 And keycode = vbKeyX Then
End 'Alt+X退出,vbkeyX=88
End
End Sub

Private Sub Form_Load()
Dim filenum As Integer
filenum = FreeFile
Open App.Path + "\Sample.txt" For Append As #filenum
End Sub

整段代码哪里出了问题,本人小菜,还想想知道用什么方法可以实现最大化,存储TEXTBOX中输入的内容,这里存盘存入的是什么,如何使做出来的exe文件能够在桌面最底端显示,怎样修改VB做出来的exe文件图标且到其他电脑中仍有效,如何利用VB后台发送邮件甚至批量发送邮件,希望各路大虾能给小菜我一一解惑。

回复列表 (共4个回复)

沙发

删除 Private Sub Form_Load 过程,修改Form_keypress过程:

....
If shift = 2 And keycode = vbKeyS Then
Dim filenum As Integer
filenum = FreeFile
Open App.Path + "\Sample.txt" For Append As #filenum
Print #filenum, Form1.Text1.Text 'Ctrl+S 存盘
Close #filenum
....


Form1.WindowState = 1 '最小化
Form1.WindowState = 2 '最大化


窗体有个 Icon 属性,你给它选一个32*32的图标,编译为exe后到其他电脑中仍有效


至于利用VB后台发送邮件甚至批量发送邮件,有多种方法,但都不是几句话可以说得清滴,建议你先看看书,再来有的放矢提问。

板凳


我貌似缺少了end if语句。我生成exe后并没有实现想要的效果,到底是什么原因呢,帮忙指明一下好吗[em7][em3]

3 楼

嗯,是我没过细看,应该还要删除Form_keypress过程,修改form_keydown过程:

Private Sub form_keydown(keycode As Integer, shift As Integer)
Select Case Shift
  Case 0
    Select Case KeyCode
      Case 27  'Esc键退出
        End
    End Select
  Case 2
    Select Case KeyCode
      Case 83   'Ctrl+S 存盘
        Dim filenum As Integer
        filenum = FreeFile
        Open App.Path + "\Sample.txt" For Append As #filenum
        Print #filenum, Form1.Text1.Text
        Close #filenum
      Case 88  'Ctrl+X 最小化
        Form1.WindowState = 1
      Case 89  'Ctrl+Y 最大化
        Form1.WindowState = 2
    End Select
End Select
End Sub

4 楼


真心感谢你的帮助,之前我已经找到了解决的办法了,你这段代码我调试了下,仍然无法达到预期的效果,
Private Sub Form_Load()
Me.KeyPreview = True
End Sub 
加上这个就可以实现
感谢你能帮助新人,还在学习,以后多多帮忙哦。呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册