private void button2_Click(object sender, EventArgs e)    //执行下一步按钮
        {
            if (timer1.Enabled == true)         //如果时间控件在循环,则提示用户
            {
                MessageBox.Show("请先按暂停键", "提示");
            }
            else                                //
            {
                Graphics gf = pictureBox1.CreateGraphics();//绘图对象                SolidBrush myBrush = new SolidBrush(Color.Red); //画刷
                SolidBrush myBrush2 = new SolidBrush(Color.White);//画刷                if (k >= 0)
                {
                    if (c[k] <= n - 1)
                    {
                        c[k] = c[k] + 1;
                        gf.FillRectangle(myBrush2, 25.00F + (c[k] - 2) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);
                        gf.FillRectangle(myBrush, 25.00F + (c[k] - 1) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);                        if (k == 0) //第一行为部分着色
                        {
                            gf.FillRectangle(myBrush, 25.00F + (c[k] - 1) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);
                            k = k + 1;
                        }
                        else
                        {                            if (canput(k)) //当为合法着色
                            {
                                MessageBox.Show("恭喜输出正确结果", "消息框");
                            }
                            else if (partput(k)) //当为部分着色
                            {
                                k = k + 1;
                            }
                        }
                    }
                    else
                    {
                        gf.FillRectangle(myBrush2, 25.00F + (c[k] - 1) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);
                        c[k] = 0;
                        k -= 1;
                    }
                }
                else
                {
                    if (n == 0 || n == 2 || n == 3)
                    {
                        MessageBox.Show("此问题无解", "提示");
                        timer1.Dispose();
                    }
                    else
                    {
                        MessageBox.Show("全部过程演示完毕", "提示");
                        timer1.Dispose();
                        return;
                    }
                }
                myBrush.Dispose();
                myBrush2.Dispose();
            }
        }
        /// <summary>
        /// 时间控件,执行与“下一步”按钮相同的操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer1_Tick(object sender, EventArgs e)        
        {
            Graphics gf = pictureBox1.CreateGraphics();
            SolidBrush myBrush = new SolidBrush(Color.Red);
            SolidBrush myBrush2 = new SolidBrush(Color.White);            if (k >= 0)
            {
                if (c[k] <= n - 1)
                {
                    c[k] = c[k] + 1;
                    gf.FillRectangle(myBrush2, 25.00F + (c[k] - 2) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);
                    gf.FillRectangle(myBrush, 25.00F + (c[k] - 1) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);                    if (k == 0) //第一行为部分着色
                    {
                        gf.FillRectangle(myBrush, 25.00F + (c[k] - 1) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);
                        k = k + 1;
                    }
                    else
                    {                        if (canput(k)) //当为合法着色
                        {
                            timer1.Enabled = false;
                            MessageBox.Show("恭喜输出正确结果", "消息框");
                        }
                        else if (partput(k)) //当为部分着色
                        {
                            k = k + 1;
                        }
                    }
                }
                else
                {
                    gf.FillRectangle(myBrush2, 25.00F + (c[k] - 1) * d + 5, 25.00F + k * d + 5, d - 10, d - 10);
                    c[k] = 0;
                    k -= 1;
                }
            }
            else
            {
                if (n == 0 || n == 2 || n == 3)
                {
                    timer1.Enabled = false;         //计时器 停止循环
                    MessageBox.Show("此问题无解", "提示");
                    timer1.Dispose();
                    return;
                }
                else
                {
                    timer1.Enabled = false;         
                    MessageBox.Show("全部过程演示完毕", "提示");
                    timer1.Dispose();
                    return;
                }
            }
            myBrush.Dispose();
            myBrush2.Dispose();
        }
        /// <summary>
        /// 暂停
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
        }
        /// <summary>
        /// 继续
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }        
    }
}