Form1.frm
上传用户:qzrxzm
上传日期:2022-07-16
资源大小:2k
文件大小:6k
源码类别:

菜单

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    Caption         =   "Form1"
  4.    ClientHeight    =   6765
  5.    ClientLeft      =   60
  6.    ClientTop       =   450
  7.    ClientWidth     =   6930
  8.    LinkTopic       =   "Form1"
  9.    ScaleHeight     =   6765
  10.    ScaleWidth      =   6930
  11.    StartUpPosition =   3  '窗口缺省
  12. End
  13. Attribute VB_Name = "Form1"
  14. Attribute VB_GlobalNameSpace = False
  15. Attribute VB_Creatable = False
  16. Attribute VB_PredeclaredId = True
  17. Attribute VB_Exposed = False
  18. '**************************************************
  19. '
  20. '转载请注明:
  21. '
  22. '            功能:一个菜单栏的例子 1.01
  23. '
  24. '            作者:HexXiaoYou
  25. '
  26. '            E-mail:hexxiaoyou@gmail.com
  27. '
  28. '            Blog:http://hi.baidu.com/nianxiaoyou
  29. '
  30. '            2008.01.01
  31. '
  32. '            修正随窗口变化时,控件变化的问题。
  33. '
  34. '**************************************************
  35. Option Explicit
  36. Dim WithEvents listCommand1 As VB.CommandButton
  37. Attribute listCommand1.VB_VarHelpID = -1
  38. Dim WithEvents listCommand2 As VB.CommandButton
  39. Attribute listCommand2.VB_VarHelpID = -1
  40. Dim WithEvents listCommand3 As VB.CommandButton
  41. Attribute listCommand3.VB_VarHelpID = -1
  42. Dim WithEvents shuoming As VB.TextBox
  43. Attribute shuoming.VB_VarHelpID = -1
  44. Dim list_top(2 To 3) As Integer
  45. Dim zhuangtai As Integer
  46. Dim frmHeight As Integer
  47. Private Sub Form_Load()
  48. Me.Move (Screen.Width / 2 - 3000), (Screen.Height / 2 - 3000), 6000, 4000
  49. Set shuoming = Controls.Add("VB.TextBox", "shuoming", Form1) '加入一个TextBox
  50. With shuoming
  51.         .Move Me.Width / 2, Me.Height / 2, 2000, 300 '设置TextBox位置和尺寸
  52.         .Text = "程序作者:hexxiaoyou" '设置TextBox内容
  53.         .BackColor = vbBlue    '背景颜色
  54.         .ForeColor = vbRed      '字体颜色
  55.         .Visible = True    '设置TextBox按钮为可见
  56.         .SelStart = Len(shuoming.Text)  '光标位置
  57. End With
  58. Set listCommand1 = Controls.Add("VB.CommandButton", "listCommand1", Form1) '加入一个CommandButton
  59. With listCommand1
  60.         .Move 0, 0, 1500, 300 '设置CommandButton位置和尺寸
  61.         .Caption = "菜单一" '设置CommandButton按钮的标题
  62.         .Visible = True    '设置CommandButton按钮为可见
  63. End With
  64. Set listCommand2 = Controls.Add("VB.CommandButton", "listCommand2", Form1) '加入一个CommandButton
  65. With listCommand2
  66.         .Move 0, Me.Height - 1120, 1500, 300 '设置CommandButton位置和尺寸
  67.         .Caption = "菜单二" '设置CommandButton按钮的标题
  68.         .Visible = True '设置CommandButton按钮为可见
  69. End With
  70. Set listCommand3 = Controls.Add("VB.CommandButton", "listCommand3", Form1) '加入一个CommandButton
  71. With listCommand3
  72.         .Move 0, Me.Height - 820, 1500, 300 '设置CommandButton位置和尺寸
  73.         .Caption = "菜单三" '设置CommandButton按钮的标题
  74.         .Visible = True '设置CommandButton按钮为可见
  75. End With
  76. list_top(2) = listCommand2.Top '记录listCommand2在y轴上位置
  77. list_top(3) = listCommand3.Top '记录listCommand3在y轴上位置
  78. zhuangtai = 1
  79. frmHeight = Me.Height
  80. End Sub
  81. Private Sub Form_Resize()
  82.     list_top(2) = Me.Height - 1120 '记录listCommand2在y轴上位置
  83.     list_top(3) = Me.Height - 820 '记录listCommand3在y轴上位置
  84. If Me.Height < 4000 Then: Me.Height = 4000
  85. If zhuangtai = 1 Then
  86.     If frmHeight <> Me.Height Then
  87.         If listCommand3.Top > frmHeight / 2 Then
  88.             listCommand3.Top = list_top(3)
  89.         Else
  90.             listCommand2.Top = listCommand1.Height
  91.         End If
  92.         If listCommand2.Top > frmHeight / 2 Then
  93.             listCommand2.Top = list_top(2)
  94.         Else
  95.             listCommand3.Top = listCommand2.Top + listCommand2.Height
  96.         End If
  97.     End If
  98. End If
  99. frmHeight = Me.Height
  100. End Sub
  101. Private Sub listCommand1_Click()
  102. If listCommand3.Top < Me.Height / 2 Then  '当listCommand3在上方位置时
  103.         Do
  104.             DoEvents
  105.             listCommand3.Top = listCommand3.Top + 10  '用循环逐步让listCommand3按钮向下移
  106.         Loop Until listCommand3.Top + 10 > list_top(3)  '直到它的位置与加载时的位置相近
  107.         listCommand3.Top = list_top(3)      '则让他回到加载时位置
  108. End If
  109. If listCommand2.Top < Me.Height / 2 Then    '当listCommand2在上方位置时  标记一
  110.         Do
  111.             DoEvents
  112.             listCommand2.Top = listCommand2.Top + 10    '用循环逐步让listCommand2按钮向下移
  113.         Loop Until listCommand2.Top + 10 > listCommand3.Top '直到它的位置与加载时的位置相近
  114.         listCommand2.Top = list_top(2)      '则让他回到加载时位置
  115. End If
  116. End Sub
  117. Private Sub listCommand2_Click()
  118.     If listCommand2.Top > Me.Height / 2 Then  '当listCommand2在下方位置时  标记二
  119.         Do
  120.             DoEvents
  121.             listCommand2.Top = listCommand2.Top - 10    '用循环逐步让listCommand2按钮向上移
  122.         Loop Until listCommand2.Top - 10 < listCommand1.Height  '直到它的位置与listCommand1的位置相近
  123.         listCommand2.Top = listCommand1.Height          '则让他回到listCommand1下方位置
  124.     End If
  125.     If listCommand3.Top < Me.Height / 2 Then        '同 标记一
  126.         Do
  127.             DoEvents
  128.             listCommand3.Top = listCommand3.Top + 10
  129.         Loop Until listCommand3.Top + 10 > list_top(3)
  130.         listCommand3.Top = list_top(3)
  131.     End If
  132. End Sub
  133. Private Sub listCommand3_Click()
  134.     If listCommand2.Top > Me.Height / 2 Then    '同 标记二
  135.         Do
  136.             DoEvents
  137.             listCommand2.Top = listCommand2.Top - 10
  138.         Loop Until listCommand2.Top - 10 < listCommand1.Height
  139.         listCommand2.Top = listCommand1.Height
  140.     End If
  141.     If listCommand3.Top > Me.Height / 2 Then    '当listCommand3在下方位置时
  142.         Do
  143.             DoEvents
  144.             listCommand3.Top = listCommand3.Top - 10    '用循环逐步让listCommand3按钮向上移
  145.         Loop Until listCommand3.Top - 10 < listCommand2.Top + listCommand2.Height '直到它的位置与listCommand2的位置相近
  146.         listCommand3.Top = listCommand2.Top + listCommand2.Height  '则让他回到listCommand2下方位置
  147.     End If
  148. End Sub