using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DataGridView
{
public partial class Form1 : Form
{
int count = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//根据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);
}
//添加行
private void button1_Click(object sender, EventArgs e)
{
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 = "监听";
}
//获取信息
private void button2_Click(object sender, EventArgs e)
{
//获取当前活动单元格内容
Console.WriteLine("当前活动单元格内容:" + dataGridView1.CurrentCell.Value);
//取得当前单元格的列Index
Console.WriteLine("当前单元格的列Index:" + dataGridView1.CurrentCell.ColumnIndex);
//取得当前单元格的行Index
Console.WriteLine("取得当前单元格的行Index:" + dataGridView1.CurrentCell.RowIndex);
// 设定 (1, 1) 为当前单元格
dataGridView1.CurrentCell = dataGridView1[1, 1];
}
}
}
测试:
点击添加:
选中(2,1)处的单元格,点击获取,命令行输出:
当前活动单元格内容:2
当前单元格的列Index:1
取得当前单元格的行Index:2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DataGridView
{
public partial class Form1 : Form
{
int count = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//根据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;
/**********************************************************************************/
}
//添加行
private void button1_Click(object sender, EventArgs e)
{
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 = "监听";
}
//获取
private void button2_Click(object sender, EventArgs e)
{
//获取当前活动单元格内容
Console.WriteLine("当前活动单元格内容:" + dataGridView1.CurrentCell.Value);
//取得当前单元格的列Index
Console.WriteLine("当前单元格的列Index:" + dataGridView1.CurrentCell.ColumnIndex);
//取得当前单元格的行Index
Console.WriteLine("取得当前单元格的行Index:" + dataGridView1.CurrentCell.RowIndex);
// 设定 (1, 1) 为当前单元格
dataGridView1.CurrentCell = dataGridView1[1, 1];
}
}
}
即不想显示该新行,可以将 DataGridView 对象的 AllowUserToAddRows 属性设置为 False。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DataGridView
{
public partial class Form1 : Form
{
int count = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//根据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;
}
//添加行
private void button1_Click(object sender, EventArgs e)
{
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 = "监听";
/*****************新增加的代码********************/
dataGridView1.AllowUserToAddRows = false;
/*************************************************/
}
//获取
private void button2_Click(object sender, EventArgs e)
{
//获取当前活动单元格内容
Console.WriteLine("当前活动单元格内容:" + dataGridView1.CurrentCell.Value);
//取得当前单元格的列Index
Console.WriteLine("当前单元格的列Index:" + dataGridView1.CurrentCell.ColumnIndex);
//取得当前单元格的行Index
Console.WriteLine("取得当前单元格的行Index:" + dataGridView1.CurrentCell.RowIndex);
// 设定 (1, 1) 为当前单元格
dataGridView1.CurrentCell = dataGridView1[1, 1];
}
}
}
DataGridView1.Columns[0].Visible = false; // DataGridView1的第一列隐藏
DataGridView1.Rows[0].Visible = false; // DataGridView1的第一行隐藏
(2) 行头、列头的隐藏
DataGridView1.ColumnHeadersVisible = false; // 列头隐藏
DataGridView1.RowHeadersVisible = false; // 行头隐藏
(3) 行和列的删除
//删除名为"Column1"的列
DataGridView1.Columns.Remove("Column1");
//删除第一列
DataGridView1.Columns.RemoveAt(0);
//删除第一行
DataGridView1.Rows.RemoveAt(0);
(4) 删除选中行
foreach (DataGridViewRow r in DataGridView1.SelectedRows)
{
if (!r.IsNewRow)
{
DataGridView1.Rows.Remove(r);
}
}
// 禁止用户改变DataGridView1的所有列的列宽
DataGridView1.AllowUserToResizeColumns = false;
//禁止用户改变DataGridView1の所有行的行高
DataGridView1.AllowUserToResizeRows = false;
但是可以通过 DataGridViewColumn.Width 或者 DataGridViewRow.Height 属性设定列宽和行高。
(2) 禁止指定行或者列的Resize
// 禁止用户改变DataGridView1的第一列的列宽
DataGridView1.Columns[0].Resizable = DataGridViewTriState.False;
// 禁止用户改变DataGridView1的第一列的行宽
DataGridView1.Rows[0].Resizable = DataGridViewTriState.False;
(3) 列宽和行高的最小值的设定
// 第一列的最小列宽设定为 100
DataGridView1.Columns[0].MinimumWidth = 100;
// 第一行的最小行高设定为 50
DataGridView1.Rows[0].MinimumHeight = 50;
(4) 禁止用户改变行头的宽度以及列头的高度
// 禁止用户改变列头的高度
DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
// 设置用户改变行头的宽度
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;
// 设定包括Header和所有单元格的列宽自动调整
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
// 设定包括Header和所有单元格的行高自动调整
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
(2) 设定指定单元格行高和列宽自动调整
// 第一列自动调整
DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
// 设定列头的宽度可以自由调整
DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
// 设定行头的宽度可以自由调整
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
// 改变DataGridView1的第一列列头内容
DataGridView1.Columns[0].HeaderCell.Value = "第一列";
// 改变DataGridView1的第一行行头内容
DataGridView1.Rows[0].HeaderCell.Value = "第一行";
// 改变DataGridView1的左上头部单元内容
DataGridView1.TopLeftHeaderCell.Value = "左上";
转载请标明出处,原文地址:https://blog.csdn.net/weixin_41835916 如果觉得本文对您有帮助,请点击顶支持一下,您的支持是我写作最大的动力,谢谢。