C# DataGridView的使用

总结下DataGridView的一些使用细节

如下代码我参考的是:

https://blog.csdn.net/weixin_41835916/article/details/84314828

https://blog.csdn.net/qq_36051316/article/details/115904884

            //获取当前活动单元格内容
            Console.WriteLine("当前活动单元格内容:" + DataGri_Store.CurrentCell.Value);
            //取得当前单元格的列Index
            Console.WriteLine("当前单元格的列Index:" + DataGri_Store.CurrentCell.ColumnIndex);
            //取得当前单元格的行Index
            Console.WriteLine("取得当前单元格的行Index:" + DataGri_Store.CurrentCell.RowIndex);
            // 设定当前活动单元格的索引是(1, 1)  
            DataGri_Store.CurrentCell = DataGri_Store[1, 1];

            //根据Header和所有单元格的内容自动调整行的高度
            dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
            //添加三列
            for (int i = 0; i < 3; i++)
            {
                dataGridView1.Columns.Add(new DataGridViewTextBoxColumn());
                dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;  //设置所有列自适应宽度
            }
            //三列的标题
            dataGridView1.Columns[0].HeaderText = "序号";
            dataGridView1.Columns[1].HeaderText = "日期";
            dataGridView1.Columns[2].HeaderText = "说明";
            //设置对齐方式和字体
            dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dataGridView1.Font = new Font("宋体", 11);

            /******************************新增加的代码************************************/
            dataGridView1.ReadOnly = true;    //设置所有单元格都不可编辑
            // 设置 DataGridView1 的第2列整列单元格为只读
            dataGridView1.Columns[1].ReadOnly = true;
            // 设置 DataGridView1 的第3行整行单元格为只读
            dataGridView1.Rows[2].ReadOnly = true;
            // 设置 DataGridView1 的[0,0]单元格为只读
            dataGridView1[0, 0].ReadOnly = true;
            /**********************************************************************************/

            //添加行
            int index = this.dataGridView1.Rows.Add();
            this.dataGridView1.Rows[index].Cells[0].Value = count++;
            this.dataGridView1.Rows[index].Cells[1].Value = "2";
            this.dataGridView1.Rows[index].Cells[2].Value = "监听";

            //通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * ) 
            //将 DataGridView 对象的 AllowUserToAddRows 属性设置为 False。

            //列宽和行高自动调整的设定
            // 设定包括Header和所有单元格的列宽自动调整 
            DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            // 设定包括Header和所有单元格的行高自动调整 
            DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

            //设定指定单元格行高和列宽自动调整
            // 第一列自动调整 
            DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
            // 设定列头的宽度可以自由调整 
            DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            // 设定行头的宽度可以自由调整 
            DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
            // 改变DataGridView1的第一列列头内容
            DataGri_Store.Columns[0].HeaderCell.Value = "第一列";
            // 改变DataGridView1的第一行行头内容
            DataGri_Store.Rows[0].HeaderCell.Value = "第一行";
            // 改变DataGridView1的左上头部单元内容
            DataGri_Store.TopLeftHeaderCell.Value = "左上";
View Code
            //只允许选中单行
            DataGri_Store.MultiSelect = false;
            //整行选中
            DataGri_Store.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
//列宽自适应
column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            //用户可以拖动列来进行自定义的列展示
            DataGri_Store.AllowUserToOrderColumns = true;
             //行头,列头不显示
            DataGri_Store.RowHeadersVisible = false;
            DataGri_Store.ColumnHeadersVisible = false;   
        //行头显示行号
        private void DataGri_Store_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
        {
            //显示在HeaderCell上
            for (int i = 0; i < this.DataGri_Store.Rows.Count; i++)
            {
                DataGridViewRow r = this.DataGri_Store.Rows[i];
                r.HeaderCell.Value = string.Format("{0}", i + 1);
            }
            this.DataGri_Store.Refresh();
        }
View Code
//获取当前选中行的某个字段(或者索引值)对应的值            
int _SelectIndex= DataGri_Store.CurrentRow.Index;
            string _C_PAPERROLL_NO = DataGri_Store.Rows[_SelectIndex].Cells["纸卷号"].Value.ToString();
View Code

 

posted @ 2022-04-23 17:33  秋天的林子  阅读(211)  评论(0编辑  收藏  举报