10-C#的dataGridView1和datatable的使用
C#的dataGridView的使用
1.双缓冲-解决控件卡顿
//利用反射设置DataGridView1的双缓冲
Type dgvType = this.dataGridView1.GetType();
PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(this.dataGridView1, true, null);
2.不允许自动添加行
dataGridView1.AllowUserToAddRows = false; //不允许自动添加行
3.数据的遍历
for (int i = 0; i < dataGridView1.RowCount; i++)
{for (int j = 0; j < dataGridView1.ColumnCount; j++){// 打印第i行第j列数据dataGridView1.Rows[i].Cells[j].Value=i*j;}
}
4.设置第一行的名称
dataGridView1.Rows[0].HeaderCell.Value = "-20";
5.获取第一行第一列的内容
label13.Text= dataGridView1.Rows[0].Cells[0].Value.ToString();
6.设置行宽度和个数
dataGridView1.RowHeadersWidth = 60;//设置行的宽度
dataGridView1.RowCount = 10;//设置行的个数
dataGridView1.Columns[0].Width = 30;//设置列宽度
dataGridView2.Rows[i].Height = 25;设置行高度
//设置列宽度,文字水平垂直对其
dataGridView2.Columns[i].Width = 25;
dataGridView2.Columns[i].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
7.判断输入的数据是否是浮点字符串
private void dataGridView2_CellValidating(object sender, DataGridViewCellValidatingEventArgs e){//if (e.FormattedValue.ToString().Length > 2)//{// e.Cancel = true;//}if (double.TryParse(e.FormattedValue.ToString(),out _)){e.Cancel = true;}}
C#的Datatable的使用
DataTable 是一个临时保存数据的网格虚拟表,表示内存中数据的一个表,是一个二维表,也是一个后台数据源和前台显示之间的适配器。
1.实例化datatable
//创建实例,并添加首行的内容
DataTable dt = new DataTable();
dt.Columns.Add("column0", typeof(String));//添加列
//再次添加列for (int i = 1; i < arraystr.GetLength(1); i++){dt.Columns.Add(i.ToString(), typeof(string));}
//为每一行添加数据
for (int i = 0; i < arrFrames.GetLength(0); i++)//获取行数量
{DataRow dr = dt.NewRow();//dr[0] = (i + 1).ToString();for (int j = 0; j < arraystr.GetLength(1); j++)//获取列数量{dr[j] = arraystr[i, j].ToString();}dt.Rows.Add(dr);
}
2.dataGridView1与datatable绑定
dataGridView2.DataSource = dt;
3.datatable某一行对应的列数据修改
dt.Rows[0]["12"] =44.ToString();
4.datatable某一列的名称修改
dt.Columns["12"].ColumnName = 99.ToString();