0

我目前正在用 C# 创建一个模拟。我正在使用 OpenGL-TaoFramework。我遇到了一些问题。我 Glut.glutMainLoop(); 在代码中使用了函数,但我了解到这个函数永远不会返回并且程序停止了。如果我在更改变量后单击按钮,它可以按我的意愿工作,但问题是我不想使用按钮。但其他方式我无法Glut.glutMainLoop(); 再次成功回忆。任何帮助将非常感激。

   private void button1_Click(object sender, EventArgs e)
       {

           i = Convert.ToInt32(textBox1.Text);
           j = Convert.ToInt32(textBox2.Text);
           k = Convert.ToInt32(textBox3.Text);
           l = Convert.ToInt32(textBox4.Text);
           m = Convert.ToInt32(textBox5.Text);


          Glut.glutMainLoop();


        }
4

1 回答 1

0

如果我正确理解您的问题,您想在每次变量更改时触发一个函数,为此您可以使用事件处理程序。这是一个非常基本的事件处理程序的代码示例

public class Program
{

public delegate void ChangedEventHandler(object sender, EventArgs e);

public static void Main()
{
    var glut = new GlutVar();

    glut.Change += DoWhenEventTriggers;

    glut.GlutInt = 5;

}

public static void DoWhenEventTriggers(object sender, EventArgs e)
{
    Console.WriteLine("Event triggered");
}

private class GlutVar
{

    public event ChangedEventHandler Change;
    private int _GlutInt = 0;

    public void OnChange()
    {
        if(Change != null)
            Change(this,EventArgs.Empty);
    }

    public int GlutInt {
        get 
        {
            return _GlutInt;        
        } 
        set 
        {
            _GlutInt = value;
            OnChange();
        }
    }
}

}

DoWhenEventTriggers每次变量Glutint更改时都会运行,因此您可以进行类似的设置,允许您的代码Glut.glutMainLoop();在变量更改时触发。

于 2014-06-25T06:00:34.943 回答