简介:
DataGridView简单使用。添加表头。数据源绑定,刷新数据。
下载链接:https://download.csdn.net/download/c_gyl/10859343
设置
可根据需要自行更改。RowHeadersVisible属性为false。
如下图:
如果启用最左侧的行表头的功能,以下属性请关注:
- ColumnHeadersHeightSizeMode属性是行表头的高度调整。可根须需要自行设置。
- RowHeadersVisible属性是行表头是否显示。如果使用就要显示。
- RowHeadersHeight属性是行表头的宽度。如果左上角的行标题长度超过此设置的宽度,就会看不到。
- RowHeadersWidthSizeMode属性是行表头宽度属性设置。例如当行表头里面的某个单元值是“0”或者“10000000”类似更长的数据时超过RowHeadersHeight属性值,此属性将决定是否能够完全显示。当设置为DisableResizing,RowHeadersHeight属性可编辑。
如下图:
效果
如下图:
- HeaderText属性设置为No。这个决定着显示出来的第一行的列表题的名称。
- DataPropertyName属性设置为No。这个决定着绑定数据源的DataTable的Rows要传入的列标题名称。
- Design的Name属性设置为No。这个是控件的名称。
这三个可以根据需要设置,没有必要设置成一样。
- SortMode属性是排列模式选择。
- AutoSizeMode属性是大小模式设置
- Width属性是宽设置。
以上设置可通过控件右上角的三角符号或者控件属性Columns设置。
如下图:
DataGridViewCellStyle属性设置当前列的属性。
可设置背景色,对齐方式,格式等。
如下图:
代码
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 列表
{
struct structData
{
public int No;
public string Info;
}
enum enumData
{
No = 0,
Info,
}
public partial class Form1 : Form
{
DataTable Table = new DataTable();
structData[] Data = new structData[2];
string NoColumnName = Enum.GetName(typeof(enumData), 0);
string InfoColumnName = Enum.GetName(typeof(enumData), 1);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Init();
}
private void Init()
{
Bind();
//ColumnHeader();
}
private void Bind()
{
Table.Columns.Add(NoColumnName, typeof(int));
Table.Columns.Add(InfoColumnName, typeof(string));
for (int i = 0; i < Data.Length; i++)
{
DataRow row = Table.NewRow();
row[NoColumnName] = Data[i].No;
row[InfoColumnName] = Data[i].Info;
Table.Rows.Add(row);
}
Table.AcceptChanges();
dataGridView1.DataSource = Table;
dataGridView1.Refresh();
}
private void ColumnHeader()
{
dataGridView1.RowHeadersVisible = true;
dataGridView1.TopLeftHeaderCell.Value = "Index";
for (int i = 0; i < Data.Length; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = i.ToString();
}
}
private void DisplayToData()
{
for (int i = 0; i < Data.Length; i++)
{
Table.Rows[i][NoColumnName] = Data[i].No;
Table.Rows[i][InfoColumnName] = Data[i].Info;
}
}
private void DataToDisplay()
{
for (int i = 0; i < Data.Length; i++)
{
Data[i].No = int.Parse(Table.Rows[i][NoColumnName].ToString());
Data[i].Info = Table.Rows[i][InfoColumnName].ToString();
}
}
}
}
1.绑 定
Bind();
- 首先要绑定,把列表的数据实时更新到DataTable。这样每次读写数据,只需要通过DataTable。
- Table.Columns.Add(NoColumnName, typeof(int));NoColumnName变量就是属性DataPropertyName设置的内容。变量类型通过 typeof(int)设置。
- dataGridView1.DataSource = Table;绑定数据源。这样每次读写数据,只需要通过Table。
2.行表头
ColumnHeader();
- 显示dataGridView1.RowHeadersVisible = true;
- 左上角的行表头的名称,根据需要设置。 dataGridView1.TopLeftHeaderCell.Value = "Index";每行的行表题内容 dataGridView1.Rows[i].HeaderCell.Value = i.ToString();
3.获取显示数据
DisplayToData();
- 获取列表的数据,更新到自定义的变量类型里。
4.显示数据
DataToDisplay();
- 程序更改数据后,显示到列表。