通过代码动态生成按钮

时间:2014-02-09 19:41:38

标签: button vb6 grid

我想在按钮的vb6中的表单上生成网格。我正在预订,所以我会假设为每个选项生成按钮(例如A1,E7等)将是最佳选择。

但是,我无法弄清楚如何实现这一目标。

我正在研究座位预订系统。所以我希望从通过数据库输入的座位数量生成网格(不应该真的很重要,但干草是什么)。

因此,例如,如果座位总数为100,我希望表单生成一个10x10的按钮网格。当单击其中一个按钮(每个按钮都是唯一的)时,我可以通过修改/添加座位到数据库中的保留表来保留它们。

试图找到所有地方的解决方案,但似乎在VB6中没有解决这个问题。

1 个答案:

答案 0 :(得分:2)

请参阅下文,了解您的要求:

'1 form with
'  1 commandbutton: name=Command1  index=0
Option Explicit

Private Sub Command1_Click(Index As Integer)
  Caption = CStr(Index)
End Sub

Private Sub Form_Load()
  Dim lngIndex As Long
  For lngIndex = 1 To 100
    Load Command1(lngIndex)
  Next lngIndex
  For lngIndex = 0 To Command1.UBound
    With Command1(lngIndex)
      .Caption = CStr(lngIndex)
      .Visible = True
    End With 'With Command1(lngIndex)
  Next lngIndex
End Sub

Private Sub Form_Resize()
  Dim lngIndex As Long
  Dim sngWidth As Single, sngHeight As Single
  Dim lngRow As Long, lngCol As Long
  sngWidth = ScaleWidth / 10
  sngHeight = ScaleHeight / 10
  For lngIndex = 0 To Command1.UBound
    lngRow = lngIndex \ 10
    lngCol = lngIndex Mod 10
    Command1(lngIndex).Move lngCol * sngWidth, lngRow * sngHeight, sngWidth, sngHeight
  Next lngIndex
End Sub

请注意,尽管对1张表格进行大量控制可能会大幅降低性能

如果座位布局很好,你可能最好使用(msflex)网格控件

另一种选择是加载座位图的图片并让用户点击图片,之后您可以使用X和Y坐标来确定点击了哪个座位......这样你也可以使用不同的座位图片中的颜色,并获得用户点击的颜色,以预先选择座位类型