对DataGridView的操作

博客围绕DataGridView展开,介绍了其属性设置,包括以指定列排序、实现鼠标右键选中行等操作,还提及选择复选框获取失效的问题,主要运用C#语言在winform环境中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 dataGridView属性设置

        /// <summary>
        /// 设置数据表样式
        /// </summary>
        private void SetDgvStyle(DataGridView table)
        {
            try
            {
                table.ClearSelection();
                //int index = dgvStandard.CurrentCell.RowIndex;//获取选中行
                table.MultiSelect = false; //不可多选
                table.AllowUserToAddRows = false; //设置不显示添加行
                table.AllowUserToDeleteRows = false; //设置不允许删除行
                table.AllowUserToResizeColumns = false; //设置列不可调整
                table.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //列名居中
                table.AllowUserToResizeRows = false; //设置行不可调整
                table.RowHeadersVisible = false; //设置表头不显示行标题
                table.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //列填充控件显示区域
                table.CausesValidation = false; //焦点
                table.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; //边框样式
                table.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; //列高调整

                table.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //单元格内容居中
                table.ReadOnly = false; //只读设置
                table.RowHeadersWidth = 4; //列宽设置(按照权重设置时需要先添加列)
                table.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; //设置列表头不可调整
                table.RowTemplate.Height = 28; //设置行高
                table.ScrollBars = ScrollBars.Vertical; //显示垂直滚动条
                table.TabStop = false; //设置无Tab焦点
                table.VirtualMode = true; //设置可进行数据管理
                dgv.Rows[lastTableHeadRow].Frozen = true;//冻结指定行

                for (var i = 0; i < table.Columns.Count; i++)
                {
                    table.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; //禁止点击列名排序
                    table.Columns[i].FillWeight = 1; //按权重分配列宽

                    //设置图像列的布局
                    var column = table.Columns[i] as DataGridViewImageColumn;
                    if (column != null)
                    {
                        column.ImageLayout = DataGridViewImageCellLayout.Zoom;
                    }
                }
            }
            catch (Exception)
            {
                // ignored
            }
        }

2 以指定列排序

dataGridView.Sort(dataGridView.Columns[0], ListSortDirection.Descending);

3 实现鼠标右键选中行

private void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.RowIndex >= 0)
    {
        if (e.Button == MouseButtons.Right)
        {
            dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
        }
    }
}

4 选择复选框获取失效

//在获取数据前,设置一次当前活动单元格
dgv.CurrentCell = dgv.Rows[0].Cells[0];
DataTable dtCheck = (DataTable)dgv.DataSource;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值