问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vb.net datagridview 几行一起排序

发布网友 发布时间:2024-10-22 08:34

我来回答

1个回答

热心网友 时间:2024-11-08 23:41

黑体字下面是要这样吗? vb的代码 我不太懂,只会c#的,  但是给你个思路, 就是纵向合并单元格嘛。 

我贴一段c#的代码,。, 您理解下, 应该不困难。。。

代码 把AllowUserToAddRows设置为false

 

      private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            //纵向合并
            if (this.dataGridView1.Columns["Name"].Index == e.ColumnIndex && e.RowIndex >= 0)
            {

                using (
                    Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
                    backColorBrush = new SolidBrush(e.CellStyle.BackColor))
                {
                    using (Pen gridLinePen = new Pen(gridBrush))
                    {
                        // 擦除原单元格背景
                        e.Graphics.FillRectangle(backColorBrush, e.CellBounds);
                        /**/
                        ////绘制线条,这些线条是单元格相互间隔的区分线条,
                        ////因为我们只对列name做处理,所以datagridview自己会处理左侧和上边缘的线条
                        if (e.RowIndex != this.dataGridView1.RowCount - 1)
                        {
                            try
                            {
                               
if (e.Value.ToString() != this.dataGridView1.Rows[e.RowIndex +
1].Cells[e.ColumnIndex].Value.ToString())
                                {

                                    e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1,
                                    e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);//下边缘的线
                                    //绘制值
                                    if (e.Value != null)
                                    {
                                        e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
                                            Brushes.Crimson, e.CellBounds.X + 2,
                                            e.CellBounds.Y + 2, StringFormat.GenericDefault);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                               
                            }
                        }
                        else
                        {
                            e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1,
                                e.CellBounds.Right - 1, e.CellBounds.Bottom - 1);//下边缘的线
                            //绘制值
                            if (e.Value != null)
                            {
                                e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
                                    Brushes.Crimson, e.CellBounds.X + 2,
                                    e.CellBounds.Y + 2, StringFormat.GenericDefault);
                            }
                        }
                        //右侧的线
                        e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
                            e.CellBounds.Top, e.CellBounds.Right - 1,
                            e.CellBounds.Bottom - 1);

                        e.Handled = true;
                    }
                }
            }

        }

下面是我用的datatable   这个dataset是网上copy的

  DataSet dataset = new DataSet();//库
            //表
            DataTable myfriends = new DataTable("myfriends");
            //列
            DataColumn dcName = new DataColumn();
            dcName.ColumnName = "Name";
            dcName.DataType = typeof(string);
            dcName.MaxLength = 8;
            DataColumn dcPhone = new DataColumn();
            dcPhone.ColumnName = "telephone";
            dcPhone.DataType = typeof(string);
            dcPhone.MaxLength = 11;
            //添加列
            myfriends.Columns.Add(dcName);
            myfriends.Columns.Add(dcPhone);
            //添加1行
            DataRow row = myfriends.NewRow();//得到空行
            row["Name"] = "小明";
            row["telephone"] = "13888888888";
            DataRow row1 = myfriends.NewRow();//得到空行
            row1["Name"] = "小明";
            row1["telephone"] = "15859859888";
            DataRow row2 = myfriends.NewRow();//得到空行
            row2["Name"] = "猪猪";
            row2["telephone"] = "15999999999";
            myfriends.Rows.Add(row);
            myfriends.Rows.Add(row1);
            myfriends.Rows.Add(row2);
            //添加表到dataset
            dataset.Tables.Add(myfriends);
            dataGridView1.DataSource = myfriends;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 c#中,我想在datagridview控件中的某一列添加click事件,怎么搞_百度... 父亲去世后,我该怎样处理后事? 想养蜘蛛,请问要如何才好养。【这里是新手 如何在the old reader订阅science材料相关文章 the old reader 怎么追踪关键词和期刊 99年妹子一枚. 想养一只智利红玫瑰蜘蛛觉得这小家伙挺可爱的但是对爬... 超快批量科研文献下载方法——The Old Reader与Mendeley插件相结合... iphone 3GS 16G 白色美版怎么样?系统4.1 theoldreader是英语的吗 美版iPhone 3GS和联通版iPhone 3GS有什么区别?它们的外观和操作系统都全... iOS上有哪些支持the old reader的app 美版iphone 3gs 美版IPHONE 3GS 3.13解锁 美版iphone3GS iphone3gs升级6.1.3后有锁,显示SIM卡不被支持。请求好心人帮忙_百度知 ... c# datagridview 如何在末尾添加新空行 穆远为什么会黑化了 月上重火穆远是大boss吗 月上重火幕后黑手是谁 宇文穆远什么时候黑化 什么样的人才值得交朋友 怎么做麻辣香锅口感更丰富? ...以编程方式向DatagridView的行集合中添加行,怎么解决? 【戴尔灵越14R】【 联想thinkpadE40】【索尼E系列】――哪个更适合入手... C# datagridview、datagrid、GridControl增加行号 C# dataGridView 如何自动获取所有行的值? gridview中绑定数据库后,数据库中有值是空的,怎么把空的值显示为0呢... 如何将datagridview控件中的数据变成dataset? datagridview 怎么取消默认选中的第一个单元格(第一行第一个)_百度知... ...如何设置datagridview默认一行都不被选中?高手解答! C#想让DataGridView默认行不被选中 datagridview默认没有选中行 c# datagridview在加载后会自动选中一个单元格,请问如何不让它自动选择... 如何设置进入DataGridView 单元格时是否选中其中的内容 石家庄有什么大专学校 石家庄有哪个大专 太和县老粮仓换老板了吗 松原学区房都有哪些 ...应该是脑内有问题 请大家帮忙看看有没有知道的 ...证书也有的只是太久了找不到了请问现在这个值多少?