主窗体代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ele ee = new ele();
string[] array;
string str;
Thread t,k;
private void button1_Click(object sender, EventArgs e)
{
t = new Thread(new ThreadStart(updown_zxl));
t.Start();
}
public void updown_zxl() {
int num = ee.getnumber();
str = textBox1.Text;
array = str.Split(new char[] { ',' });
if (array[1] == "true")
{
ee.setb(true);
ee.setinde(Convert.ToInt32(array[0])-num);
ee.ele_up();
}
else
{
ee.setb(false);
ee.setinde(num-Convert.ToInt32(array[0]));
ee.ele_down();
}
}
private void button2_Click(object sender, EventArgs e)
{
k = new Thread(new ThreadStart(ele_zxl));
k.Start();
}
public void ele_zxl() {
//t.Join();
int ask = Convert.ToInt32(textBox2.Text);
if (ee.getb())
{
ee.ele_ask_updown(ask + 1);
}
else {
ee.setb(false);
ee.ele_ask_updown(ask + 1);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text ="当前层数 :"+ee.getnumber().ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 500;
timer1.Start();
}
}
}
类代码:
updown.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace WindowsFormsApplication1
{
public class updown
{
private static int number = 1;
private static bool bo = true;
public void up_down(int index,bool b)
{
//if (number >= 7) { bo = false; } else if (number <= 1) { bo = true; }
if (b)
{
for (int i = 0; i < index; i++)
{
if (number >= 7) { break; }
number += 1;
Thread.Sleep(2000);
}
}
else
{
for (int i = 0; i < index; i++)
{
if (number <= 1) { break; }
number -= 1;
Thread.Sleep(2000);
}
}
}
public int getnumber()
{
return number;
}
}
}
ele.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace WindowsFormsApplication1
{
public class ele : updown
{
updown u = new updown();
private static bool b; //true-up false-down
private static int inde; //走几层
private static bool b1;
public void ele_up() {
u.up_down(inde, b);
}
public void ele_down() {
u.up_down(inde, b);
}
public void ele_ask_updown(int innum) {
int gnum=u.getnumber();
if (b)
{
if (innum - gnum >= 0)
{
b1 = true;
}
else {
b1 = false;
}
if (b==b1)
{
u.up_down(innum - u.getnumber()-1, true);
}
else {
u.up_down(u.getnumber()-innum+1, false);
}
}
else
{
if (innum - gnum <= 0)
{
b1 = false;
}
else
{
b1 = true;
}
if (b == b1)
{
u.up_down(u.getnumber() - innum + 1, false);
}
else
{
u.up_down(innum - u.getnumber() - 1, true);
}
}
}
public bool getb() {
return b;
}
public void setb(bool b) {
ele.b = b;
}
public int getinde()
{
return inde;
}
public void setinde(int inde)
{
ele.inde = inde;
}
}
}