C# DataGridView的使用
总结下DataGridView的一些使用细节
如下代码我参考的是:
https://blog.csdn.net/weixin_41835916/article/details/84314828
https://blog.csdn.net/qq_36051316/article/details/115904884
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//获取当前活动单元格内容 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 = "左上";
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//只允许选中单行 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(); }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//获取当前选中行的某个字段(或者索引值)对应的值 int _SelectIndex= DataGri_Store.CurrentRow.Index; string _C_PAPERROLL_NO = DataGri_Store.Rows[_SelectIndex].Cells["纸卷号"].Value.ToString();