主窗体代码:
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; } } }