printdocument 里有个事件:PrintPageEventHandler(this.printDocument1_PrintPage)打印的时候可以通过e.Graphics.drawstring、drawline等,画出来线,或指定要打的内容,再什么位置上打然后可以预览,有两个问题
 
1、PrintPageEventHandler里通过e.Graphics.drawstring、drawline画出来的字或线,如果没有按照X坐标或Y坐标排序,用针式打印机进行套打时会不会有和点或字打不出来,2、就是一个排序问题,前提是1号问题的点名字打不出来
我有一个想法,就是创建一个对象名字就叫Test吧,里边有 
        public bool IsLine { get; set; } 是不是线
        public String Name { get; set; } 字的内容
        public int? X_Position { get; set; } X 坐标
        public int? Y_Position { get; set; } Y 坐标然后把多个对象,放在List<Test>,对这个 List<Test>排序,条件是升序,test里X 坐标
Y 坐标 最小的放在前边,昨天试了一天没找到好的方法,没做过这样的排序
排序好了,再按X,Y坐标进行e.Graphics.drawstring、drawline的绘制
求高手给个排序方法

解决方案 »

  1.   

    这个排序应该和冒泡排序很相似吧,楼主参考下冒泡排序吧: int[] a = new int[] { 38, 20, 46, 38, 74, 91, 12, 25 };            int i;
                for (i = 0; i < a.Length - 1; i++) //排至倒数第二位,最后一位省略
                {
                    for (int j = i + 1; j < a.Length; j++) //从第i位开始,至最后一位结束
                    {
                        if (a[i] > a[j]) //升序排列,最小的在前
                        {
                            int temp; //临时变量                        temp = a[i];
                            a[i] = a[j];
                            a[j] = temp;
                        }
                        
                    }
      

  2.   

    http://blog.csdn.net/dunao/archive/2009/02/05/3865053.aspx先打印的坐标的大小排序是没有关系的.
      

  3.   

    各位高手,我问个问题,如何使用一个变量来控制一个已经存在的文本框?就是用这个变量的值来表示文本框的名称?Thanks
      

  4.   

    已经存在一个TextBox名字叫week1,为什么这样不能让它显示?            TextBox tx = new TextBox();
                tx.Name = "week1";
                tx.Text = "OK";   救助!
      

  5.   

    排序
    List<T>,Sort可自定义排序
    List <T>.Sort(IComparer <T>)  
    public class StudentComparer : IComparer <Student>  
    {  
      public enum CompareType  
      {  
      Name,  
      Age,  
      Grade  
      }  
      private CompareType type;  
      public StudentComparer(CompareType type)  
      {  
      this.type = type;  
      }  
      public int Compare(Student x, Student y)  
      {  
      switch(this.type)  
      {  
      case CompareType.Name:  
      return x.Name.CompareTo(y.Name);  
      case CompareType.Age:  
      return x.Age.CompareTo(y.Age);  
      default:  
      return x.Grade.CompareTo(y.Grade);  
      }  
      }  
    }  
      

  6.   

    是的
    并不是你做了一个drawline的操作,打印机就会有动作,而是等你的操作都完成了,打印机才会有动作的