Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Вызов из другого класса


Автор: fvgk2009 10.10.2009, 09:43
Код

код C# 
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Top = 50;
Left = 200;
Size = new System.Drawing.Size(1250, 908);
}
private void progressBar1_Click(object sender, EventArgs e)
{
timer1.Interval = 100;
timer1.Enabled = true;
timer1.Tick += new EventHandler(timer1_Tick);
Class1 class1 = new Class1();
class1.Method2(progressBar1);
}
private void timer1_Tick(object sender, EventArgs e) 
{
progressBar1.PerformStep();
}
}

public class Class1
{
public void Method2(System.Windows.Forms.ProgressBar pb)
{
Form1 frm1 = new Form1();
pb.Visible = true;
pb.Minimum = 0;
pb.Maximum = 50;
pb.Value = 0;
pb.Step = 1;
}
} 

Как подключить таймер?  


Автор: KuMa1104 15.10.2009, 21:57
Быть может...
Timer.Start();  smile 

Автор: fvgk2009 18.10.2009, 07:26
В России 99% - "шутники" smile 

Автор: KuMa1104 18.10.2009, 09:59
Опиши поподробнее, что откуда и куда а главное зачем.
А то не совсем понятно где именно его подключить надо.

Мне кажеться что дело в том что когда ты пишеш в 
Код

public class Class1
{
public void Method2(System.Windows.Forms.ProgressBar pb)
{
Form1 frm1 = new Form1(); // Ты не обращаещься к своему классу Form1 а  создаёш ещё один 
//анологичный. Тебе нужно в конструктор передовать ссылку на твой Form1
pb.Visible = true;
pb.Minimum = 0;
pb.Maximum = 50;
pb.Value = 0;
pb.Step = 1;
}
} 


Но это то как я вижу проблему.
Возможно ты что то другое имел в виду.
Из твокего описания не сильно ясно.

Автор: fvgk2009 18.10.2009, 18:37
На форму помещён таймер, он служит для замедления работы прогресса.
А вообще запрограммирована работа станка в демо версии.
Рабочий код есть в VB6, а теперь я перевожу код в C#.

Автор: KuMa1104 18.10.2009, 19:21
Я имел в виду что то вроде этого

Код

class a 
{
      public Timer timer1;
      class a ()
     {
          timer1 = new ...
     }
}

class b
{
      a Temp_a; 
      class b(class a)
      {
         Temp_a = a; 
      }
      
      public void func()
      {
        Temp_a.timer1.Start();
      }
}

static main()
{
      a A = new a();
      b B = new b(a);
      b.func();//Вызов из другого класса, подключается таймер
}


Я написал эту схему как пример.
Если у тебя другая то опиши её, где вызываеш timer и т.д. я досих пор точно не понял суть проблемы.
Гадаю на кофейной гуще)

Ты не ответил насчёт моего прошлого ответа
Код

// Ты не обращаещься к своему классу Form1 а  создаёш ещё один 
//анологичный. Тебе нужно в конструктор передовать ссылку на твой Form1

Это как то относиться к делу или нет? Или ты не понял что я имею в виду?
Хоть какаянибудь реакция....
Чтоб можно было дальше думать.

К стати убедись что у тебя твой экземпляр timer обьявлен как public по умолчанию когда ты добавляеш его на форму он у тебя private и ты его вне своего класса не увидеш) 

Если это тоже не то, то тогда дай чёткоё определение код как мой пример.
Иначе так вообще некуда не приехать

Автор: Nestap 18.10.2009, 20:19
fvgk2009, 

ya ne ponemay sudi tvoevo 2 clasa??
zacem tibe evo?

mojet ti hoces zapustiti proces v odelno potoke???

ti sosdayosh new form daje ne zapuskaesh(show())?? smisl?

 ! 
PashaPash
Транслит! Правила форума: http://forum.vingrad.ru/index.php?act=boardrules

Автор: KuMa1104 18.10.2009, 20:43
Я давно задаюсь себе этим вопросом.
Думаю он так хотел получить ссылку на первый класс.

Покрайне мере это обясняет то что
ti sosdayosh new form daje ne zapuskaesh(show())?? smisl?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)