首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在打印DataGridView时隐藏列?

在打印DataGridView时隐藏列,可以通过以下步骤实现:

  1. 首先,确保你已经添加了一个PrintDocument控件到你的窗体上。你可以在窗体的设计器中找到它,或者在代码中手动创建一个。
  2. 在PrintDocument的PrintPage事件中编写打印逻辑。在这个事件中,你可以使用Graphics对象来绘制你想要打印的内容。
  3. 在PrintPage事件中,使用DataGridView的Columns属性来遍历所有列。对于每一列,你可以使用Visible属性来判断是否隐藏。如果列是可见的,你可以使用Graphics对象的DrawString方法来绘制列标题和单元格内容。
  4. 在绘制每一列之前,你可以使用DataGridView的FirstDisplayedScrollingColumnIndex属性来确定第一个可见列的索引。这样可以确保打印的列顺序与DataGridView中的列顺序一致。

下面是一个示例代码,演示了如何在打印DataGridView时隐藏列:

代码语言:txt
复制
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    DataGridView dataGridView1 = new DataGridView(); // 假设你的DataGridView控件名为dataGridView1

    // 设置打印区域
    Rectangle printArea = e.MarginBounds;
    int printWidth = 0;

    // 绘制列标题
    foreach (DataGridViewColumn column in dataGridView1.Columns)
    {
        if (column.Visible)
        {
            printWidth += column.Width;
            e.Graphics.DrawString(column.HeaderText, dataGridView1.Font, Brushes.Black, printArea.Left, printArea.Top);
            printArea.Offset(column.Width, 0);
        }
    }

    printArea = e.MarginBounds;
    printArea.Offset(0, dataGridView1.Font.Height + 5);

    // 绘制单元格内容
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        printWidth = 0;
        foreach (DataGridViewColumn column in dataGridView1.Columns)
        {
            if (column.Visible)
            {
                printWidth += column.Width;
                string cellValue = row.Cells[column.Index].FormattedValue.ToString();
                e.Graphics.DrawString(cellValue, dataGridView1.Font, Brushes.Black, printArea.Left, printArea.Top);
                printArea.Offset(column.Width, 0);
            }
        }
        printArea.Offset(0, dataGridView1.Font.Height + 5);
    }
}

请注意,这只是一个简单的示例代码,你可能需要根据你的实际需求进行修改和优化。另外,这个示例中没有提及腾讯云的相关产品,因为腾讯云主要是提供云计算服务,与打印DataGridView时隐藏列的问题没有直接关联。如果你有其他关于云计算或其他IT互联网领域的问题,我将很乐意为你提供帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DataGridView控件中实现冻结分界线

我们使用Office Excel的时候,有很多时候需要冻结行或者。这时,Excel会在冻结的行列和非冻结的区域之间绘制上一条明显的黑线。...(VS.85).aspx) ,但是呢,DataGridView控件默认不会在冻结或者行的分界处绘制一个明显的分界线,这样的话,最终用户很难注意到当前有或者行是冻结的。...通常,我们如果想在现有的控件上多画点什么,就会去Override OnPaint方法,然后加入自己的OwnerDraw逻辑,但是呢DataGridView上有一些困难: 1.如何确定冻结分界线的位置...2.如何保证分界线不会绘制到ScrollBar上 研究了一下,我们可以借用DataGridView提供的CellPainting方法。...DataGridView绘制每一个Cell的时候判断当前Cell是否是分界线所在的位置,然后进行绘制。

2.4K100
  • 打印标签如何解决打印偏移

    我们在打印标签,使用的纸张一般都是不干胶卷纸,这样的卷纸又有单排、双排、三排和四排的规格。这些不同规格的标签纸条码打印中经常会出现打印偏移的问题,甚至会跳纸,遇到这样的情况该如何调整呢?...01.png 小编的办公桌上有一台TSC的TTP-244 Pro打印机,里面装的是三排的标签纸,尺寸是30*10mm,可以打印条形码或者小的标签。下面就以这台打印机为例来介绍。...02.jpg 打开条码标签软件,使用条码工具画布上绘制一个条形码。...点击打印预览,可以标签排版处设置相应参数。一般这种一行多的标签纸,标签之间的间距都是2mm。下图是小编第一次设置的参数。 03.png 打印出来的效果如下图:可以看到条码向左和向上偏移。...04.png 接着软件中进行设置,将整体向右偏移设置为5,向下偏移设置为1。打印出来的效果:条码标签纸上布局很好,这样设置就可以啦!

    2.2K60

    WPF --- 如何以Binding方式隐藏DataGrid

    引言 如题,如何以Binding的方式动态隐藏DataGrid?...预想方案 像这样: 先在ViewModel创建数据源 People 和控制隐藏的 IsVisibility,这里直接以 MainWindow 为 DataContext public partial...我疑惑了很久,直到看到了Visual Studio中的实时可视化树: 从图中可以看出,虽然我 Xaml 中声明了两 DataGridTextColumn,但他根本不在可视化树中。...取消勾选后,隐藏年龄: 小结 本篇文章中,首先探索了 DataGridTextColumn 为什么不在可视化树结构内,是因为「所有继承自 Visual 或 UIElement(UI 元素的更高级别抽象...其次探索如何通过曲线救国,实现以 Binding 的方式实现隐藏DataGridTextColumn,我们借助了一个核心抽象类 System.Windows.Freezable。

    48010

    如何用pytorch打印隐藏层梯度

    我们训练神经网络, 有时会发现自己的网络学习不到东西,loss不下降或者下降很慢,这时除了检查修改学习率以外还有可能是碰见了梯度消失的问题。...检查是否发生梯度消失最好的方法其实就是将梯度值打印出来,这里就讲讲如何在pytorch中打印隐藏层的参数。...利用pytorch中register_hook函数可以打印出梯度,下面官方文档对这个函数的例子: >>> v = Variable(torch.Tensor([0, 0, 0]), requires_grad...如果要打印隐藏层的梯度,则v应该是隐藏层的参数。那么接下来就是要选择出需要打印梯度的那一层的参数。...通过name_str来选择打印哪一层的参数,再对parameters调用register_hook方法即可打印出该层参数。在这里我打印的是第二个全连接层的参数的梯度。

    11.9K40

    如何在条码打印软件中使用打印保存

    有些客户条码打印软件中批量制作完成标签之后,想要把标签内容以txt文本的形式保存出来,可以把标签上的每个内容分别保存到一个TXT文本,也可以把标签上的多个内容保存到一个TXT文本中,条码打印软件中打印保存就可以实现这个效果...,具体操作如下: 1.条码打印软件,使用序列生成生成两个可变的数据之后,可以选中某一个数据双击,图形属性-数据源中,勾选打印保存,点击浏览,设置一下保存路径,分别把标签上的每一个内容...打印保存2.jpg 3.桌面上打开我们刚才勾选打印保存,保存的TXT文本,看下每个标签分别保存到TXT文本的效果。...打印保存3.jpg 还有一种效果是把标签上的多个内容保存到同一个TXt文本中,分别选中标签上的两个内容,勾选打印保存,路径都设置为C。...效果如下图: 1561947667(1).jpg 以上就是有关在条码打印软件中使用打印保存的功能,可以根据自己的需求选择不同的TXT文本效果,如何在条码打印软件中设置可变的数据,可以参考中琅可变数据打印软件上如何设置流水号

    2.4K20

    探索Excel的隐藏功能:如何求和以zzz开头的

    你是否曾经处理大量数据,遇到需要对特定进行求和的情况?特别是当这些以"zzz"这样的不常见前缀开始如何快速准确地完成求和操作呢?本文将为你揭晓答案,让你的Excel技能更上一层楼!...为什么选择"zzz"作为示例开始之前,你可能会好奇为什么选择"zzz"作为的前缀。实际上,"zzz"可以代表任何不常见的、特定的或者你想要特别关注的前缀。...通过本文的介绍,你将学会如何灵活运用这一技巧,应对各种类似的场景。准备工作开始操作之前,请确保你的Excel已经打开,并且有一个包含以"zzz"开头的的数据表。...步骤一:定位"zzz"开头的需要找到所有以"zzz"开头的Excel中,你可以通过以下几种方法来实现:手动查找:滚动查看标题,找到所有以"zzz"开头的。...结语通过本文的介绍,你现在应该已经掌握了如何在Excel中对以"zzz"开头的进行求和。这个技巧不仅能够帮助你提高工作效率,还能够让你在处理复杂数据更加得心应手。

    13510

    条码打印软件中如何打印黑底白字标签

    条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个条码打印软件中该如何设置呢?...,勾选打印背景为,设置好之后,点击确定。...效果如下图所示: 白色作为一种特殊颜色,需要用到专色油墨打印条码打印软件中,也可以实现专色的打印,要打印白色,可以条码打印软件中勾选“专色”设置。...以上就是条码打印软件中设置黑底白字的操作步骤,字体颜色可以根据自己的需求自定义进行设置的。...除此之外,还可以条码软件中将单一的文字颜色生成彩色的,这里就不再详细的描述了,具体的操作可以参考如何在中琅软件上把普通文字生成彩色文字。

    2.2K20

    条码打印软件中如何打印黑底白字标签

    条码打印软件中绘制普通文本添加文字的的时候,一般都是白底黑字的。但是有的时候,个别客户想要实现黑底白字的效果,这个条码打印软件中该如何设置呢?...,勾选打印背景为,设置好之后,点击确定。...效果如下图所示: 白色作为一种特殊颜色,需要用到专色油墨打印条码打印软件中,也可以实现专色的打印,要打印白色,可以条码打印软件中勾选“专色”设置。...以上就是条码打印软件中设置黑底白字的操作步骤,字体颜色可以根据自己的需求自定义进行设置的。...除此之外,还可以条码软件中将单一的文字颜色生成彩色的,这里就不再详细的描述了,具体的操作可以参考如何在中琅软件上把普通文字生成彩色文字。

    2.1K30

    c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    // 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 整行选中模式开启,你也能够通过 CurrentCell...e.Cancel = true; } } ********DataGridView 行、隐藏和删除: 1) 行、隐藏 // DataGridView1的第一隐藏 DataGridView1....Columns[0].Visible = false; // DataGridView1的第一行隐藏 DataGridView1.Rows[0].Visible = false; 2) 行头、头的隐藏...// 隐藏 DataGridView1.ColumnHeadersVisible = false; // 行头隐藏 DataGridView1.RowHeadersVisible = false...******DataGridView 冻结或行 1) 冻结 DataGridViewColumn.Frozen 属性为 True , 该左側的全部被固定, 横向滚动固定不随滚动栏滚动而左右移动

    4.1K10

    【转】基于C#的WinForm中DataGridView控件操作汇总

    // 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 整行选中模式开启,你也可以通过 CurrentCell 来设定选定行...e.Cancel = true; } } ********DataGridView 行、隐藏和删除: 1) 行、隐藏 // DataGridView1的第一隐藏 DataGridView1....Columns[0].Visible = false; // DataGridView1的第一行隐藏 DataGridView1.Rows[0].Visible = false; 2) 行头、头的隐藏...// 隐藏 DataGridView1.ColumnHeadersVisible = false; // 行头隐藏 DataGridView1.RowHeadersVisible = false;...******DataGridView 冻结或行 1) 冻结 DataGridViewColumn.Frozen 属性为 True , 该左侧的所有被固定, 横向滚动固定不随滚动条滚动而左右移动

    5.3K50

    如何在使用 Flutter切换应用时隐藏应用预览

    当您的应用显示敏感数据,这是一项重要功能。 如果您要显示敏感数据,例如。钱包金额,或者只是当登录表单显示插入的密码清晰(想想眼睛图标..),当您不在应用程序中,您必须隐藏敏感数据。...许多应用程序已经这样做了,无论是 Android 还是 iOS 上。 今天我们将看看如何在不使用任何包的情况下完成这项任务,并自己编写所有代码。别担心,这很容易。...因此,请继续了解当您从一个应用切换到另一个应用时如何隐藏应用预览。 开始使用 现在,让我们开始编码吧! 创建一个新的基本 Flutter 应用程序。(我想你知道该怎么做^^)。...安卓 Android 中,这非常简单。 我们只需要将MainActivity.kt更新到您的 android 原生项目中,只需****onCreate方法中添加一行代码。...现在将无法整个应用程序中截取屏幕截图。该功能广泛应用于金融科技领域。但最重要的是,启用本文的客观功能,即在我们切换应用时隐藏预览应用。

    2.2K20

    C# 可视化程序设计机试知识点汇总,DBhelper类代码

    控件中 this.dataGridView1.DataSource = dt; 选中DataGridView中的行,将所有的数据一个个放入到文本控件中(cellClick事件)。...//cellClick事件外定义typeID string typeID; //判断选中的行数是否>0 if (this.dataGridView1.SelectedRows.Count>0)...{ //”=”号左边给全局变量typeID赋值, ”=”号右边获得选中第一行第一的值转为string类型(标号以数据库中的顺序为准) typeID = this.dataGridView1....Text = this.dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); //”=”号定义变量接收, ”=”号右边获得选中第一行第三的值转为...; } 删除(Click事件) //定义sql语句(typeID是全局变量,从DataGridView控件的cellClick事件中获取选中的隐藏的类型ID) string sql = string.Format

    7.7K20
    领券