关于c#的datagridview用法

      为了较人性化处理数据,我考虑使用datagridview(类似于Excel表格,可以增加,删除等操作)。

      1.首先,在工具箱中的数据,选择datagridview,拖曳到窗体中。

关于c#的datagridview用法_第1张图片

灰色部分就是datagridview。勾选“启用添加”,则表格的最后出现一空行(此时,就要注意有数据的行数要减1),否则,就没有.

若是想确定列的标题,可以选择“编辑列”,里面有各种参数设置。也可以通过写代码编辑列以及列行的数据内容。本人就是通过写代码编辑表格的内容。

2.通过代码方式建立行列名称

            DataTable dt = new DataTable();  //新建一个datatable用于保存读入的数据            
            dt.Columns.Add(new DataColumn("点号", typeof(string)));   //给datatable添加五列
            //dt.Columns.Add(new DataColumn("类型", typeof(string)));
            dt.Columns.Add(new DataColumn("控制点X", typeof(string)));
            dt.Columns.Add(new DataColumn("控制点Y", typeof(string)));
            dt.Columns.Add(new DataColumn("控制点Z", typeof(string)));

            

           openFileDialog1.Title = "请选择文件";           //读取数据
            openFileDialog1.Filter = "文本文件(*.txt|*.txt";
            openFileDialog1.RestoreDirectory = true;
            //openFileDialog1.ShowDialog();
            StreamReader sr;
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string filename = openFileDialog1.FileName;
                 sr = new StreamReader(filename, System.Text.Encoding.Default);
               
            }
            else
                return;

            char[] charAray = new char[] { ',', ' ', '\t' };    //将所读取的数据加入到datatable中
            
            while (!sr.EndOfStream)
            {
                string[] data = sr.ReadLine().Split(charAray, StringSplitOptions.RemoveEmptyEntries);               
                DataRow dr = dt.NewRow();   //将数据显示在每行中
                dr[0] = data[0];
                dr[1] = data[1];
                dr[2] = data[2];
                dr[3] = data[3];
                dt.Rows.Add(dr);     //将数据添加到datatable中
            }

            sr.Close(); 
            this.dataGridView1.DataSource = dt;    //将datatable绑定到datagridview 上显示结果

关于c#的datagridview用法_第2张图片

        以上就可以将所读取的数据显示在表格中,

3.接下来介绍表格中有下拉菜单

            DataGridViewComboBoxColumn d = new DataGridViewComboBoxColumn();
            d.HeaderText = "类型";
            d.Items.Add("控制点");
            d.Items.Add("检核点");
            //d.DefaultCellStyle.NullValue = d.Items[0]; //添加默认值
            dataGridView1.Columns.Add(d);
            //((DataGridViewComboBoxColumn)dataGridView1.Columns[4]).DefaultCellStyle.NullValue="控制点"; //添加默认值

关于c#的datagridview用法_第3张图片

4.对表格中的数据进行数据处理操作

         

            int q = 0;                                                   //分布确定控制点与检核点矩阵的大小
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)    //dataGridView1.Rows.Count要减1,因为表格中多出一空行 
            {
                if (dataGridView1.Rows[i].Cells[4].Value.ToString() == "控制点")
                {
                    q++;
                }
            }

            string[] a = new string[q];   //控制点字符串大小
            string[] b = new string[dataGridView1.Rows.Count - 1 - q];  //检核点字符串大小
            int ii1 = 0, jj1 = 0;
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)  //dataGridView1.Rows.Count要减1,因为表格中多出一空行 
            {
                if (dataGridView1.Rows[i].Cells[4].Value.ToString() == "控制点")//一定要用value,才能获取表格中的属性值
                {
                    for (int j = 0; j < dataGridView1.Columns.Count - 1; j++)
                    {
                        a[ii1] += dataGridView1.Rows[i].Cells[j].Value.ToString()+"        ";

                    }

                    ii1++;
                }
                else
                {

                    for (int j = 0; j < dataGridView1.Columns.Count - 1; j++)
                    {
                        b[jj1] += dataGridView1.Rows[i].Cells[j].Value.ToString() + "        ";

                    }

                    jj1++;
                }

            }
            aa = a;
            bb = b;

关于c#的datagridview用法_第4张图片

以上就是对表格中的数据进行各种操作。
 

 推荐博客:

      1.https://blog.csdn.net/dkwqapts25502/article/details/101867875

      2.https://blog.csdn.net/qq_37792061/article/details/80404023

      3.https://blog.csdn.net/hws1058648831a/article/details/8970188

      4.https://blog.csdn.net/hws1058648831a/article/details/8970188

      5.https://bbs.csdn.net/topics/390986203

      6.https://blog.csdn.net/wind_cloud2011/article/details/17142933

      7.https://zhidao.baidu.com/question/1797560074615717987.html

      8.https://www.cnblogs.com/JYYJ/p/4469715.html

      9.https://blog.csdn.net/acoolgiser/article/details/79271566

      10.https://zhidao.baidu.com/question/2202498825031262788.html

      11.https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102814579

       12.https://jingyan.baidu.com/article/d5a880eb42e1aa53f047cc02.html

      13.https://q.cnblogs.com/q/117791/

      14.https://blog.csdn.net/wzk456/article/details/83591090

      15.https://www.cnblogs.com/LuoFB/p/4139545.html

       16.https://blog.csdn.net/whg4585/article/details/7607911

       17.https://www.cnblogs.com/zyadmin/p/8136619.html

       18.https://blog.csdn.net/lllljz/article/details/7602552#1577695281460

        19.https://bbs.csdn.net/topics/391872420

        20.https://blog.csdn.net/zhouyingge1104/article/details/93920150

 

 

你可能感兴趣的:(关于c#的datagridview用法)