private void HuiZhiTu( string strPaiXu) { //初始数据 int[] nums = { 150, 89, 200, 60, 70, 90 }; if (strPaiXu == "升序") { //冒泡排序 for (int i = 0; i < nums.Length; i++) { for (int j = 0; j < nums.Length-1; j++) { if (nums[i] > nums[j]) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } } } else if (strPaiXu == "降序") { //冒泡排序 for (int i = 0; i < nums.Length; i++) { for (int j = 0; j < nums.Length-1; j++) { if (nums[i] < nums[j]) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } } } else { //正常的顺序 } label1.Text = strPaiXu; //创建画布 int panHeight = this.panel1.Height; int panWight = this.panel1.Width; Bitmap bitM = new Bitmap(panWight, panHeight); Graphics g = Graphics.FromImage(bitM); g.Clear(Color.White); //绘制横向线条 for (int i = 0; i < 5; i++) { g.DrawString(i * 50 + "", new Font("宋体", 10, FontStyle.Regular), new SolidBrush(Color.Black), 20, 50 * (5 - i) - 7); g.DrawLine(new Pen(Color.Red), 50, 50 * i + 50, 500, 50 * i + 50); } //绘制纵向线条 g.DrawLine(new Pen(Color.Red), 50, 0, 50, 250); //填充数据 for (int i = 0; i < nums.Length; i++) { g.FillRectangle(new SolidBrush(Color.Red), 50 * i + 80, 250 - nums[i], 40, nums[i]); } this.panel1.BackgroundImage = bitM; } private void btn_HuiZhi_Click(object sender, EventArgs e) { HuiZhiTu("正常顺序"); } private void btn_ShengXu_Click(object sender, EventArgs e) { HuiZhiTu("升序"); } private void btn_JiangXu_Click(object sender, EventArgs e) { HuiZhiTu("降序"); }