10 Ноябрь 2009

Checkbox и Combobox в MSFlexGrid

Combobox |  Таги: ,

Checkbox и Combobox в MSFlexGrid.
На форме ComboBox – индекс = 0, CheckBox – индекс = 0 и MSFlexGrid
Изменение ширины колонок отключил (не могу отловить событие изменения ширины).

Option Explicit
Dim x As Integer
Dim NumVisRow As Integer
Dim PredRowPos As Integer
Dim HeightRows As Integer

Private Sub Command1_Click()
MSFlexGrid1.AddItem ""
x = Combo1.Count

Load Check1(x)
Check1(x).Left = MSFlexGrid1.Left + 100
Check1(x).Top = MSFlexGrid1.Top + (MSFlexGrid1.RowHeight(0) * x) + 100
Check1(x).ZOrder

Load Combo1(x)
Combo1(x).Left = MSFlexGrid1.Left + MSFlexGrid1.ColWidth(0) + MSFlexGrid1.ColWidth(1) + MSFlexGrid1.ColWidth(2) + 50
Combo1(x).Top = MSFlexGrid1.Top + (MSFlexGrid1.RowHeight(0) * x) + 50
Combo1(x).Width = MSFlexGrid1.ColWidth(3)
Combo1(x).ZOrder
Combo1(x).AddItem "Пар" & x

    If Check1(x).Top < MSFlexGrid1.Top + MSFlexGrid1.Height Then
    Check1(x).Visible = True
    End If

    If Combo1(x).Top < MSFlexGrid1.Top + MSFlexGrid1.Height Then
    Combo1(x).Visible = True
    End If
End Sub

Private Sub Form_Load()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
MSFlexGrid1.Cols = 5
MSFlexGrid1.Rows = 1
Combo1(0).Visible = False
Check1(0).Visible = False
Check1(0).Caption = ""
Check1(0).Width = 200
Check1(0).Height = 200
'Check1(0).Appearance = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
NumVisRow = 5 ' высота в строках
HeightRows = 330
MSFlexGrid1.RowHeightMin = HeightRows
MSFlexGrid1.Height = HeightRows * NumVisRow + 50
MSFlexGrid1.ColWidth(0) = 330
MSFlexGrid1.ColWidth(3) = 2000
End Sub

Private Sub MSFlexGrid1_Scroll()
For x = 1 To MSFlexGrid1.Rows - 1
Combo1(x).Visible = False
Check1(x).Visible = False

   Combo1(x).Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(x) + 50
   Check1(x).Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(x) + 100

If Combo1(x).Top < MSFlexGrid1.Top + HeightRows Or Combo1(x).Top > MSFlexGrid1.Top + MSFlexGrid1.Height - 50 Then
Combo1(x).Visible = False
Else
Combo1(x).Visible = True
End If

If Check1(x).Top < MSFlexGrid1.Top + HeightRows Or Check1(x).Top > MSFlexGrid1.Top + MSFlexGrid1.Height Then
Check1(x).Visible = False
Else
Check1(x).Visible = True
End If
Next x
End Sub

Private Sub Combo1_Change(Index As Integer)
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = Index
MSFlexGrid1.Text = Combo1(Index).Text
End Sub

Private Sub Combo1_Click(Index As Integer)
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = Index
MSFlexGrid1.Text = Combo1(Index).Text
End Sub

Private Sub Check1_Click(Index As Integer)
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = Index
MSFlexGrid1.ForeColorFixed = MSFlexGrid1.BackColorFixed

    If Check1(Index).Value = True Then
    MSFlexGrid1.Text = 1
    Else
    MSFlexGrid1.Text = 0
    End If
End Sub


Оставить комментарий

Я не робот.