Ввод квадратных и прямоугольных матриц - VB
Формулировка задачи:
Периодически здесь всплывает один и тот же вопрос: как ввести матрицу?
Когда-то давно ещё на Visual Besic 3.0 написал набор модулей для ввода матрицы в таблицу с возможностью редактирования каждой ячейки, сохранения в файл, загрузка из файла.
Нажатие на клавишу Enter переключает таблицу в режим редактирования ячейки, повторное нажатие на Enter возвращает в режим движения по строкам и колонкам таблицы.
В примере вводится прямоугольная матрица 8 строк на 12 колонок.Grid01.zip
Конечно наверное сейчас это решается как-то намного проще, но я иногда до сих пор пользуюсь, может и ещё кому сгодится...
Решение задачи: «Ввод квадратных и прямоугольных матриц»
textual
Листинг программы
Private Sub Form_Activate()
Dim x As Integer, y As Integer
y = Val(InputBox("Количество строк", , 8))
x = Val(InputBox("Количество столбцов", , 12))
MSF.Rows = y
MSF.Cols = x
MSF.Visible = True
MSF.SetFocus
End Sub
Private Sub MSF_DblClick()
Obr
End Sub
Private Sub MSF_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Obr
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = 27 Then
If KeyAscii = 13 Then
MSF.Text = Text1.Text
If MSF.Col <> MSF.Cols - 1 Then
MSF.Col = MSF.Col + 1
Else
If MSF.Row <> MSF.Rows - 1 Then
MSF.Row = MSF.Row + 1
MSF.Col = 0
End If
End If
End If
Text1.Visible = False
MSF.Enabled = True
MSF.SetFocus
Exit Sub
End If
If (Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9") And KeyAscii <> 8 Then KeyAscii = 0
End Sub
Sub Obr()
Text1.Text = MSF.Text
Text1.Top = MSF.Top + MSF.CellTop
Text1.Left = MSF.Left + MSF.CellLeft
Text1.Width = MSF.CellWidth
Text1.Height = MSF.CellHeight
MSF.Enabled = False
Text1.Visible = True
Text1.SetFocus
End Sub