1.winform DataGridView列标题(列标头)不能完全居中的解决方法,你仔细看会发现列标题并没有完全居中,而是略微往左边一点,如果你深得这无关大雅,就没必要往下看此文了,如果你想解决此问题请看解决方法:
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
foreach (DataGridViewColumn item in this.dataGridView1.Columns)
{
item.SortMode = DataGridViewColumnSortMode.NotSortable;
}
引用:https://www.cnblogs.com/tonightdream/p/5423956.html
2.DataGridView的自适应列宽,通常设置最后一列宽度填充;
this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
//如果希望第一列宽度不变:
this.dataGridView1.Columns[0].Width = 40;
3.去掉列头或行头:
// 列头隐藏
dataGridView1.ColumnHeadersVisible = false;
// 行头隐藏
dataGridView1.RowHeadersVisible = false;
4.添加新行数据:
int index = this.dataGridView1.Rows.Add();
this.dataGridView1.Rows[index].Cells[0].Value = index;
this.dataGridView1.Rows[index].Cells[1].Value = ComBox1.Text;
this.dataGridView1.Rows[index].Cells[2].Value = ComBox2.Text;
5.某个单元格数据居中:
dataGridView1.Rows[index].Cells[2].Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
6.选中其中一个单元格时自动选中整行记录:
this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
7.删除所有行:
this.dataGridView1.Rows.Clear();
8.删除当前选中的一行:
int num = this.dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(s);
9.删除当前选中的所有行:
foreach (DataGridViewRow dr in this.dataGridView1.SelectedRows)
{
if (dr.IsNewRow == false)
this.dataGridView1.Rows.Remove(dr);
}
10.设置标题栏颜色:
this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.Green;
dataGridView1.EnableHeadersVisualStyles = false; //如果启动了可视样式的时候,BackColor和ForeColor的值会被忽略
11.设置标题栏高度(Height):
dataGridView1.RowTemplate.Height = 40; //改变行的高度;
//改变标题的高度;
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
dataGridView1.ColumnHeadersHeight = 50;
//设置标题内容居中显示;
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
//自己设置标题内容;
dataGridView1.AutoGenerateColumns = false;
12.添加首行或尾行:
DataGridViewRow dr = new DataGridViewRow();
dr.CreateCells(dataGridView1);
dr.Cells[0].Value = 20;
dr.Cells[1].Value = 46;
dr.Cells[2].Value = 345;
dataGridView1.Rows.Insert(0, dr); //添加的行作为第一行
//dgv.Rows.Add(dr); //添加的行作为最后一行
13.设置标题栏禁止排序:
编辑列–>选定列–>行为–>SortMode–>NotSortable
或者:
for (int i = 0; i < this.dataGridView1.Columns.Count; i++)
{
this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}
14.取消默认选中行:
在添加数据后会默认选中第 一个单元格或者第一行,这几个代码,只要放对地方,任意一个都能实现取消选中的效果:
dataGridView1.ClearSelection();
//dataGridView1.CurrentCell = null;
//dataGridView1.Rows[0].Selected = false;
15.取消用户新追加的行:
dataGridView1.AllowUserToAddRows = false;
16.对某一栏进行排序:
this.dataGridView1.Sort(dataGridView1.Columns[3], ListSortDirection.Ascending); //Ascending升序,Descending降序
17.在HeaderCell中显示行号的方法:选中DataGridView控件,然后点击事件按钮,找到RowStateChanged;
private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
DataGridViewRow r = this.dataGridView1.Rows[i];
r.HeaderCell.Value = string.Format("{0}", i + 1);
}
this.dataGridView1.Refresh();
}
注:行号没有完全显示出来的解决办法是将DataGridView的RowHeadersWidthSizeMode属性设置为AutoSizeToAllHeaders、AutoSizeToDisplayedHeaders或者AutoSizeToFirstHeader。
18.禁止一次选中多行单元格
设置MultiSelect属性值为False;
19.DataGridView隔行显示不同的颜色:
AlternatingRowsDefaultCellStyle 属性:获取或设置应用于 DataGridView 的奇数行的默认单元格样式。
RowsDefaultCellStyle 属性:获取或设置应用于 DataGridView 的行单元格的默认样式。
dataGridView1.RowsDefaultCellStyle.BackColor = Color.Bisque;
dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Beige
还可以参考:https://www.cnblogs.com/zgqys1980/archive/2010/03/23/1692205.html