Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Доступ к свойтвам элементов управления через по... Добавлено: 09.11.02 15:09  

Автор вопроса:  Vasd | Web-сайт: www.vbnet.ru

Здравствуйте!

Сморите:

Pivate sub property

dim a as byte

a=inputbox("Введите А")

Label(a).BackColor="red"

end sub

Я думаю, понятно что требуется.

Напишите если кто знает как это делается по-другому.

Если писать так, как есть то выдается сообщение об ошибке "Процедура Sub или Function не определена"

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 09.11.02 17:27

Pivate sub property

Попробуй

Pivate sub property()

Ответить

Номер ответа: 2
Автор ответа:
 ГАТ



Вопросов: 2
Ответов: 117
 Web-сайт: www.mail.ru
 Профиль | | #2
Добавлено: 10.11.02 04:56
А я так и непонял, что требуется. Если у тебя массив Label(), то непонятно, зачем определять индекс массива как Byte. А если это не массив, то естественно VB воспринимает Label() как обрадение к функции или процедуре.

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 10.11.02 14:27

Наверное ты неправильно написал имя контрола
Label->Label1

Вот проверь имена контролов
for each control in form1
if control.name="Label" then msgbox"Есть такой контрол",64,control.name
next

Ответить

Номер ответа: 4
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #4
Добавлено: 11.11.02 02:22

Я в принципе тебе уже ответил.
Дело только в деталях.

Private Sub Form_Click()
LabelNumber = InputBox("Введите номер метки")
ChangeControlColor LabelNumber
End Sub

Sub ChangeControlColor(Index)
'массив цветов для функции QBCOLOR
'если не знаешь, то
'0-чёрный,1-синий,2-зелёный,3-голубой,4-красный,5-малиновый,6-жёлтый,7-белый,8_15-полутона
ColorsArray = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
'Подставь свои значения. Например что-бы получить
'label1-зелёный,label2-красный поставь
'(0, 2, 4, ...)
ArrColor = Index Mod 16
SearchControl = "Label" & LTrim(Str(Index))
For Each Control In Form1
 If Control.Name = SearchControl Then Control.BackColor = QBColor(ColorsArray(ArrColor))
Next
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 11.11.02 02:32

Хм. Насчёт цветов несколько перестарался. Но это не такая уж сложная проблема. Сам сделаешь.

Ответить

Номер ответа: 6
Автор ответа:
 ГАТ



Вопросов: 2
Ответов: 117
 Web-сайт: www.mail.ru
 Профиль | | #6
Добавлено: 11.11.02 06:46

Предлагаю сделать так.

Dim cnt As Control

For Each cnt In Form1.Controls

If VBA.TypeName(cnt) = "Label" Then

cnt.Backcolor = "red"

End If

Next

Ответить

Номер ответа: 7
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 11.11.02 14:57

А для всех форм

For each form in forms

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам