Waiting for a button click while running through a foreach

I had to do a quiz in Windows Forms where I'm using the object Question to create the questions, the possible options and the correct answers. I have to go through all the questions that are in an array but I can only proceed once the user has clicked one of the options.

    bool click = false;

    ...

    public void Start()
    {
        foreach(Pergunta p in perguntas)
        {
            while(!click)
            {
                lblPergunta.Text = p.getP();
                btnA.Text = p.getA();
                btnB.Text = p.getB();
                btnC.Text = p.getC();
                btnD.Text = p.getD();
            }
            click = false;
        }
    }

...

    private void btnA_Click(object sender, EventArgs e)
{
    click = true;
    Check(p.isCorrect(btnA.Text));
}

I tried having a foreach loop but it runs through it without waiting and if I force a while with a flag, it doesn't even run. I'm currently using this solution even though I know it isn't any optimal.

    private static ArrayList perguntas = new ArrayList();
    Pergunta p = new Pergunta();
    int points = 0;
    int c = 0;

    public Form1()
    {
        Pergunta p1 = new Pergunta("", "", "", "", "");
        perguntas.Add(p1);
        Pergunta p2 = new Pergunta("", "", "", "", "");
        perguntas.Add(p2);

        InitializeComponent();
        Change();
    }

    public void Change()
    {
        lblPontos.Text = points.ToString();
        if(c < perguntas.Count)
        {
            p = (Pergunta)perguntas[c];
            lblPergunta.Text = p.getP();
            btnA.Text = p.getA();
            btnB.Text = p.getB();
        }
        else
        {
            MessageBox.Show("Done!");
        }
    }

    public void Check(bool b)
    {
        if(b)
        {
            MessageBox.Show("Good!");
            points++;
        }
        else
        {
            MessageBox.Show("Wrong!");
        }
        Change();
    }

    private void btnA_Click(object sender, EventArgs e)
    {
        c++;
        Check(p.isCorrect(btnA.Text));
    }

    ...

I'm using a counter and a function to change the values until the counter reaches the last question but I don't think this was supposed to be the correct way.