2010-11-05 2 views
0

пытается запустить функцию, не помещая ее в Main(), когда программа запущена. как начать новую созданную функцию? пытается вызвать RunMix() в Main(), но получаю сообщение об ошибке из-за lable1Как мне вызвать функцию без функции Main в C sharp?

namespace mixer 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     int i = 0; 

     public void RunMix() 
     { 
      while (i == 0) 
      { 
       label1.Text = knob1.Angle.ToString(); 
       Application.DoEvents(); 
      } 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      RunMix(); 
     } 
    } 
} 
+0

Поместите что-нибудь еще в Main, которое будет * в конечном итоге * вызвать его называть? – FrustratedWithFormsDesigner

+2

Просьба привести пример. Здесь неясно, что вы пытаетесь сделать. –

+0

Можете ли вы узнать больше о том, что вы пытаетесь сделать? Консольное приложение я предполагаю? –

ответ

0

Хорошо мой первый ответ был полностью от темы из-за ваш таинственный вопрос. Теперь, когда вы его обновили, мне лучше - не полному - понять, что вы имеете в виду.

Глядя на код Я предполагаю, что вы пытаетесь изменить значение метки при изменении угла управления ручкой. Если knob1 является элементом управления, он должен иметь событие изменения, и вы должны изменить значение label1 внутри обработчика события knob1_change. Если у knob1 нет никакого события - маловероятно - тогда вы должны использовать таймер. Loop - это просто плохая идея в вашей ситуации. Таймер должен работать следующим образом:

Timer timer = new Timer(); 
public void RunMix(object sender, EventArgs e) 
{ 
    label1.Text = knob1.Angle.ToString();    
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    timer.Interval = 100; 
    timer.Tick += new EventHandler(RunMix); 
    timer.Start(); 
} 

Остановить таймер при закрытии формы или использовать цикл активации/дезактивации в зависимости от ваших требований.

+0

Я попытался поместить код, но он сказал Ошибка Нет перегрузки для 'RunMix' соответствует делегату 'System.EventHandler' – user162304

+0

Я получил его на работу, спасибо большое. – user162304

1

В консольном приложении, метод Main() является точкой входа в приложение. Вы должны ввести код для запуска приложения.

+0

@ user162304 Измените свой вопрос, чтобы включить этот код; его невозможно прочитать, когда он помещен в комментарии. Спасибо! –

1

Если вы хотите протестировать эту функцию, вы можете использовать NUNIT или Microsofts Unit Testing Framework. В противном случае вы должны вызвать функцию из Main().

0

У вас не может быть другого метода, кроме Main в качестве точки входа для приложения.

Для экс вы не можете запустить программу из функции, как это:

public static MyMain(string[] args) 
{ 
} 
0

Это код Java для того же самого, но я не знаю то же самое в C#. Но я думаю, что это возможно и на C#.

класс staticEx { статическая { System.out.println ("Внутри статических Блок"); System.exit (0); }}

Приведенный выше код протестирован и получил его от here в то время как GOOGLEing. В C# также может быть аналогичная возможность.

Смежные вопросы