为了较人性化处理数据,我考虑使用datagridview(类似于Excel表格,可以增加,删除等操作)。
1.首先,在工具箱中的数据,选择datagridview,拖曳到窗体中。
灰色部分就是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 上显示结果
以上就可以将所读取的数据显示在表格中,
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="控制点"; //添加默认值
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;
以上就是对表格中的数据进行各种操作。
推荐博客:
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