ProgressBar обновляю из другого модуля и.... Помогите.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Bryz
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 15.04.2004 (Чт) 10:23

ProgressBar обновляю из другого модуля и.... Помогите.

Сообщение Bryz » 15.04.2004 (Чт) 10:28

На Form1 установлен ProgressBar. Изменяю его параметр value из Module1. Почему ProgressBar внешне никак не изменяется? Короче не работает... :(

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 15.04.2004 (Чт) 10:41

приведи код, как объявлена форма, как чего меняешь, а то так просто помочь тебе наверное никто не сможет...

Bryz
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 15.04.2004 (Чт) 10:23

Сообщение Bryz » 15.04.2004 (Чт) 10:49

Форма объявлена: Public f1 As New Form1
Изменяю по разному:
и методом f1.ProgressBar1.Increment(1) ,
и f1.ProgressBar1.PerformStep() ,
и прямым изменением свойства f1.ProgressBar1.value = 1....25 .
Потом Application.DoEvents().

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 15.04.2004 (Чт) 11:40

А что являеться стартовым объектом (с чего программа начинает работу)? т.е. загрузка происходит с формы, или процедуры Main?

просто я попробывал следующий вариант, и у меня всё работает...

итак, я создал форму, на неё поместил progressbar, в коде формы пишу:

Код: Выделить всё
  Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
    qwe()
  End Sub


добавил модуль, в нем пишу

Код: Выделить всё
Module Module1

  Dim frm As New Form1()

  Sub main()
    frm.ShowDialog()
  End Sub

  Sub qwe()
    Dim i As Integer
    frm.ProgressBar1.Value = 0

    For i = 1 To 100 Step 5
      MsgBox("qwe")
      frm.ProgressBar1.Value = i
    Next i
  End Sub

End Module


ну соответственно всё начинает свою работу с процедуры Main, затем при счелчке мыши по форме, запускаеться цикл, в котором и изменяеться значение Value у ProgressBar'а ну а между изминениями выводиться сообщение - это для того чтобы можно было проследить, изменяеться что-то или нет...

вот это у меня работает... если вдруг я тебя не совсем понял, говори, или вышли твои исходники (если они у тебя на VB.NET 2002 написаны), которые не работают, попробую может чего-нить исправить

удачи...

Bryz
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 15.04.2004 (Чт) 10:23

Сообщение Bryz » 15.04.2004 (Чт) 11:55

Все заработало. У меня прога стартовала с формы. Ща сделал, как ты посоветовал, через main. Все ок. Большое спасибо. :lol: Но в чем была причина? :?

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 15.04.2004 (Чт) 12:25

ну почему раньше не работало, надо спросить у Microsoft'а...

а если серьёзно, то скорее всего, просто доступа к объекту формы из модуля не было...

Kalan
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 20.02.2004 (Пт) 17:04
Откуда: Москва

Сообщение Kalan » 22.04.2004 (Чт) 16:11

А фишка в том, что форма - это тоже класс и из модуля в класс обращатся нельзя, если внутри модуля не сделать объекта, содержащего ссылку на класс(т. к. увеличение progress bar - это вызов метода). Поэтому в качестве точки входа и надо указать MAIN, а frm определить, как объект, содержащий ссылку на форму и уже через него обращатся к progress bar.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList