C# 以类似表格的格式打印数据

C# 以类似表格的格式打印数据,c#,winforms,tabular,C#,Winforms,Tabular,所以我将一些数据存储到一个对象中,我需要检索数据并以类似于表的格式输出它。我尝试过使用格式说明符,由于字符的宽度,信息会发生变化。我需要创建一个类似于表格的东西,返回该对象,然后能够在一张纸上打印信息,而无需打印单元格线。我尝试了一个数据表,但看不到表中的信息。最简单的方法是什么?这是一个windows窗体应用程序。用户将信息保存在3个类中。使用列表。我已尝试使用空格和\t对格式进行制表。但是,根据字符的宽度,格式设置会关闭几个空格。此外,数据的长度可以在1-3个字符之间来回移动 只需从对象填充

所以我将一些数据存储到一个对象中,我需要检索数据并以类似于表的格式输出它。我尝试过使用格式说明符,由于字符的宽度,信息会发生变化。我需要创建一个类似于表格的东西,返回该对象,然后能够在一张纸上打印信息,而无需打印单元格线。我尝试了一个数据表,但看不到表中的信息。最简单的方法是什么?这是一个windows窗体应用程序。用户将信息保存在3个类中。使用列表。我已尝试使用空格和\t对格式进行制表。但是,根据字符的宽度,格式设置会关闭几个空格。此外,数据的长度可以在1-3个字符之间来回移动

只需从对象填充datatable并将datagridview源设置为datatable

public class Form1
{
    public void BuildDataTable()
    {
        DataTable dt = new DataTable("Customers");  
        dt.Columns.Add(new DataColumn("LastName")); 
        dt.Columns.Add(new DataColumn("FirstName")); 

        // Populate the table 
        dt.Rows.Add("Baggins", "Bilbo");
    }


    private void Button2_Click(System.Object sender, System.EventArgs e)
    {
        PrintDocument1.Print();
    }

    private void PrintDocument1_PrintPage(object sender, PrintPageEventArgs e)
    {
         Bitmap bm = new Bitmap(this.DataGridView1.Width, this.DataGridView1.Height);
         DataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.DataGridView1.Width, this.DataGridView1.Height));
         e.Graphics.DrawImage(bm, 0, 0);
    }
}

只需从对象填充datatable并将datagridview源设置为datatable

public class Form1
{
    public void BuildDataTable()
    {
        DataTable dt = new DataTable("Customers");  
        dt.Columns.Add(new DataColumn("LastName")); 
        dt.Columns.Add(new DataColumn("FirstName")); 

        // Populate the table 
        dt.Rows.Add("Baggins", "Bilbo");
    }


    private void Button2_Click(System.Object sender, System.EventArgs e)
    {
        PrintDocument1.Print();
    }

    private void PrintDocument1_PrintPage(object sender, PrintPageEventArgs e)
    {
         Bitmap bm = new Bitmap(this.DataGridView1.Width, this.DataGridView1.Height);
         DataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.DataGridView1.Width, this.DataGridView1.Height));
         e.Graphics.DrawImage(bm, 0, 0);
    }
}

ASP?WinForms?WPF?我们需要更多的信息,需要更多的细节。根据你给我的信息,我只能告诉你“生成一个自定义对象存储方法和一个自定义打印输出方法,你可以按照你的要求进行格式化”我们不知道对象或数据的结构,所以我们无法得到更具体的答案…或者至少,我不能。根据您在这方面投入的时间/精力以及输出的效果,您可以创建一个html文件(很容易,因为只需使用string.ToFormat呈现内容并添加与表相关的标记),也可以使用报表引擎。对于专业级别的报告,DevExpress XtraReports功能非常强大,或者可以在此处查看:ASP?WinForms?WPF?我们需要更多的信息,需要更多的细节。根据你给我的信息,我只能告诉你“生成一个自定义对象存储方法和一个自定义打印输出方法,你可以按照你的要求进行格式化”我们不知道对象或数据的结构,所以我们无法得到更具体的答案…或者至少,我不能。根据您在这方面投入的时间/精力以及输出的效果,您可以创建一个html文件(很容易,因为只需使用string.ToFormat呈现内容并添加与表相关的标记),也可以使用报表引擎。对于专业级别的报告,DevExpress XtraReports功能非常强大,或者请看这里:我有代码将数据打印到书面报告中,我需要代码来生成数据的表格格式检查我上面修改过的答案。在调试时,如何检查表格值是否在正确的位置?如果数据网格有滚动条并且某些行被隐藏了怎么办?我有代码将数据打印到写的纸上,我需要代码来生成类似表格的数据格式检查我上面修改过的答案。在调试时,如何检查表格值是否在正确的位置?如果数据网格有滚动条并且某些行被隐藏了怎么办??