C# DataGridView使用

简介:

         DataGridView简单使用。添加表头。数据源绑定,刷新数据。

         下载链接:https://download.csdn.net/download/c_gyl/10859343

设置

可根据需要自行更改。RowHeadersVisible属性为false。

 如下图:

如果启用最左侧的行表头的功能,以下属性请关注:

  1. ColumnHeadersHeightSizeMode属性是行表头的高度调整。可根须需要自行设置。
  2. RowHeadersVisible属性是行表头是否显示。如果使用就要显示。
  3. RowHeadersHeight属性是行表头的宽度。如果左上角的行标题长度超过此设置的宽度,就会看不到。
  4. RowHeadersWidthSizeMode属性是行表头宽度属性设置。例如当行表头里面的某个单元值是“0”或者“10000000”类似更长的数据时超过RowHeadersHeight属性值,此属性将决定是否能够完全显示。当设置为DisableResizing,RowHeadersHeight属性可编辑。

如下图:

效果

如下图:

  1. HeaderText属性设置为No。这个决定着显示出来的第一行的列表题的名称。
  2. DataPropertyName属性设置为No。这个决定着绑定数据源的DataTable的Rows要传入的列标题名称。
  3. Design的Name属性设置为No。这个是控件的名称。

这三个可以根据需要设置,没有必要设置成一样。

  1. SortMode属性是排列模式选择。
  2. AutoSizeMode属性是大小模式设置
  3. 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();
  1. 首先要绑定,把列表的数据实时更新到DataTable。这样每次读写数据,只需要通过DataTable。
  2. Table.Columns.Add(NoColumnName, typeof(int));NoColumnName变量就是属性DataPropertyName设置的内容。变量类型通过 typeof(int)设置。
  3. dataGridView1.DataSource = Table;绑定数据源。这样每次读写数据,只需要通过Table。

2.行表头

ColumnHeader();
  1. 显示dataGridView1.RowHeadersVisible = true;
  2. 左上角的行表头的名称,根据需要设置。   dataGridView1.TopLeftHeaderCell.Value = "Index";每行的行表题内容 dataGridView1.Rows[i].HeaderCell.Value = i.ToString();

3.获取显示数据

DisplayToData();
  1. 获取列表的数据,更新到自定义的变量类型里。

4.显示数据

DataToDisplay();
  1. 程序更改数据后,显示到列表。

猜你喜欢

转载自blog.csdn.net/C_gyl/article/details/85067599
今日推荐