Private Sub Form_Load()
'Здесь нумерация может быть любой
Dim iMenu As Menu
For Each iMenu In Me.menuFile
iMenu.Caption = "..."
Next
End Sub
Обращение к элементам меню через массив.
У меня есть 2 элемента меню, созданные через "редактор меню". У меня многоязычная программа, и после запуска надписи на элементах меню меняются в соответствии с выбранным языком. Примерно так: mnuFile.Caption="значение, прочитанное из файла соответствующего языка", но если элементов много, то будет слишком большой код. Может существует какой-нибудь стандартный массив, в котором содержатся эти элементы меню, и к элементам можно было бы обращаться через этот массив? То есть примерно так: ArrayOfMenu(1) соответствует элементу mnuFile. Существует ли такой массив, и как он называется?
Код:
Код:
Private Sub Form_Load()
'Нумерация обязательно должна начинаться с 0
'и представлять собой арифметическую прогрессию с шагом 1
Dim iCount As Integer
For iCount = 0 To Me.menuFile.Count - 1
Me.menuFile(iCount).Caption = "..."
Next
End Sub
'Нумерация обязательно должна начинаться с 0
'и представлять собой арифметическую прогрессию с шагом 1
Dim iCount As Integer
For iCount = 0 To Me.menuFile.Count - 1
Me.menuFile(iCount).Caption = "..."
Next
End Sub
Код:
Private Sub Form_Load()
'Нумерация не обязательно должна начинаться с 0
'но исполнение второго условия обязательно
With Me.menuFile
Dim iCount%
For iCount% = .LBound To .UBound
.Item(iCount%).Caption = "..."
Next
End With
End Sub
'Нумерация не обязательно должна начинаться с 0
'но исполнение второго условия обязательно
With Me.menuFile
Dim iCount%
For iCount% = .LBound To .UBound
.Item(iCount%).Caption = "..."
Next
End With
End Sub
сначало заношу в свойство Tag всем элементам меню "mnu", а затем код:
Код:
For Each h In Me.Controls
If h.Tag="mnu" Then h.Caption="..."
Next
If h.Tag="mnu" Then h.Caption="..."
Next
Теперь еще один вопрос, можно не заносить информацию в Tag, распознавать, является ли это элементом меню по какому-нибудь свойству, типа:
Код:
For Each h In Me.Controls
If h.Type="menu" Then h.Caption="..."
Next
If h.Type="menu" Then h.Caption="..."
Next
можно как нибудь так?Существует как бы ли такое свойство, которое указывает на тип объекта, то бишь там Label, ListBox, Command?
Код:
Dim iControl As Control
For Each iControl In Me.Controls
If TypeOf iControl Is Menu Then
MsgBox "Это то, что Вы ищите", , ""
End If
Next
For Each iControl In Me.Controls
If TypeOf iControl Is Menu Then
MsgBox "Это то, что Вы ищите", , ""
End If
Next
Код:
Dim iControl As Control
For Each iControl In Me.Controls
If TypeName(iControl) = "Menu" Then
MsgBox "Это то, что Вы ищите", , ""
End If
Next
For Each iControl In Me.Controls
If TypeName(iControl) = "Menu" Then
MsgBox "Это то, что Вы ищите", , ""
End If
Next
как раз то что нужно! не спрашивайте, так скажу) у меня многоязычная прога, и мне всеравно надо перебирать и переименовывать все элементы управления, в т.ч. и меню. спасибо! тему пока не удаляте))