DataGridView合计和经典设置

56 篇文章 1 订阅
3 篇文章 0 订阅
  public FrmCR()
        {
            InitializeComponent();
            //DataGridView中最后空白的一行
            this.dataGridView1.AllowUserToAddRows = false;
            //去掉左侧前面 选择行
            this.dataGridView1.RowHeadersVisible = false;
            //初始化全屏
           
        }

        private void button1_Click(object sender, EventArgs e)
        {
         
            DataSet dataSet=   DbHelperSQL.Query("");
            this.dataGridView1.DataSource = dataSet.Tables[0];
            decimal sum=0;
            if (dataSet.Tables.Count != 0) {
                for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
                {
                    sum += Convert.ToDecimal(dataSet.Tables[0].Rows[i][4]);
                }
            }
            DataRow dr = dataSet.Tables[0].NewRow();
            dr[0] = "合计";
            dr[4] = sum;
            dataSet.Tables[0].Rows.Add(dr);
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
*调整导出及打印的格式与显示一致;合计行,详细参见第10条修正功能,全部源码及示例。 * 文 件 名:DataGridViewEx.cs * 创 建 人:明振居士 * Email:nzj.163@163.com qq:342155124 * 创建时间:2010-06-01 * 最后修改时间:2012-1-19 增加第10条所示的功能;修改了列头超过26列的错误,导出excel为数组方式,速度更快,导出的单元格设置为文本格式。 * 标 题:用户自定义的DataGridView控件 * 功能描述:扩展DataGridView控件功能 * 扩展功能: * 1、搜索Search(); 有两个同明方法,参数不同 F3为快捷键继续向下搜索 * 2、用TreeView HeadSource 来设置复杂的标题样式,如果某个节点对应的显示列隐藏,请将该节点Tag设置为hide,隐藏列的排列位置与绑定数据元列位置对应,树叶节点的顺序需要与结果集的列顺序一致 * 3、通过反射导出Excel,无需引用com组件,方法ExportExcel() ,不受列数的限制,表头同样可以导出,AutoFit属性设置导出excel后是否自动调整单元格宽度 * 导出内容支持自定义的:Title List Header List Footer,支持在设计时值的设定,窗口关闭时Excel资源自动彻底释放 * 4、可以自己任意设定那些列显示及不显示,通过调用方法SetColumnVisible()实现。 * 5、设置列标题SetHeader(),设置列永远可见AlwaysShowCols(),设置列暂时不可见HideCols() * 注意,当使用了TreeView作为复杂Header时,不要使用本方法,Header显示的内容根据treeview内容而显示 * 6、列宽度及顺序的保存SaveGridView(),加载LoadGridView() * 7、支持所见即所得的打印功能,举例如下 * private void button5_Click(object sender, EventArgs e) { DGVPrinter printer = new DGVPrinter(); printer.PrintPreviewDataGridView(DataGridViewEx1); } * 8、自定义合并行与列,行合并用 MergeRowColumn 属性,列合并用MergeColumnNames属性,都可以定义多个列 * 9、行标号的设置 bool ShowRowNumber; * 10、增加最后一行的汇总行,支持列的聚合函数,参见http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.[removed]v=VS.100).aspx * 假设对id列显示“合计”字符,avgPrice进行平均值,total列显示合计,则对ComputeColumns增加三行内容:id,合计:;avgPrice,Avg(avgPrice);total,Sum(total) * 如果需要对值进行格式控制,请实现beforeShow事件 * 增加了导出和打印对应的支持,所见即所得的对齐方应用于式导出及打印。
WinFormDataGridView控件中,根据图片的大小设置行高可以通过以下步骤实现: 1. 创建一个名为dataGridView1的DataGridView控件,并将其添加到窗体中。 2. 将图片数据添加到DataGridView控件中的某一列,例如列名为"Image"。 3. 使用DataGridView的CellFormatting事件来动态设置行高。这个事件在每次绘制单元格时触发,我们可以在其中获取到图片并设置相应的行高。 下面是实现这个功能的示例代码: ```csharp private void Form1_Load(object sender, EventArgs e) { // 添加DataGridView控件到窗体 DataGridView dataGridView1 = new DataGridView(); dataGridView1.Name = "dataGridView1"; dataGridView1.Dock = DockStyle.Fill; this.Controls.Add(dataGridView1); // 添加图片列 DataGridViewImageColumn imageColumn = new DataGridViewImageColumn(); imageColumn.Name = "Image"; dataGridView1.Columns.Add(imageColumn); // 添加图片数据 Image image1 = Image.FromFile("image1.jpg"); Image image2 = Image.FromFile("image2.jpg"); dataGridView1.Rows.Add(image1, image2); // 添加CellFormatting事件处理程序 dataGridView1.CellFormatting += dataGridView1_CellFormatting; } private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (dataGridView1.Columns[e.ColumnIndex].Name == "Image") { DataGridViewImageCell cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] as DataGridViewImageCell; if (cell != null) { // 获取图片 Image image = (Image)cell.Value; // 设置行高为图片的高度 dataGridView1.Rows[e.RowIndex].Height = image.Height; } } } ``` 上述代码中,我们在Form1_Load事件中创建了一个DataGridView控件,并添加了一个名为"Image"的Image列。然后,我们将两张图片(image1.jpg和image2.jpg)添加到DataGridView控件中的Image列。最后,通过订阅DataGridView的CellFormatting事件,在事件处理程序中获取图片的高度并将其设置为相应行的高度。 注意事项: 1. 请确保将图片文件(image1.jpg和image2.jpg)放在正确的路径下,并按照实际情况修改代码中的文件路径。 2. 为了更好地控制行高,请确定DataGridView控件的行高模式设置为: ```csharp dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None; ``` 这样,当数据加载到DataGridView控件中时,每行的高度都会根据图片的大小进行动态调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值