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;
}
}
}
{
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;
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货