C# DataGridView控件的常用操作
1.设置DataGridView中的列是否为自动调整
?
dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;?2.设置某列是否冻结(水平滚动DataGridView控件时,列是否移动)
?
dataGridView1.Columns[0].Frozen = true;
?
?3.动态向DataGridView中插入数据(1)从数据库中查询出数据
(2)循环遍历数据
(3)动态插入DataGridView中
?
OracleClass.Open();OracleDataReader dtr = OracleClass.QueryForReader(sql_select);if (dtr != null){while (dtr.Read()){int CA_ID = int.Parse(dtr.GetOracleNumber(0).ToString());int BASEID = int.Parse(dtr.GetOracleNumber(1).ToString());String BASENAME = dtr.GetOracleString(2).ToString().Substring(0, dtr.GetOracleString(2).ToString().Length - 1);String CA_NAME = dtr.GetOracleString(3).ToString();String CA_RULETYPE = dtr.GetOracleNumber(4).ToString();if (CA_RULETYPE.Equals("1")){CA_RULETYPE = "范围匹配类型";}else if (CA_RULETYPE.Equals("2")){CA_RULETYPE = "标准格式类型";}else if (CA_RULETYPE.Equals("3")){CA_RULETYPE = "固定格式类型";}else if (CA_RULETYPE.Equals("4")){CA_RULETYPE = "逻辑关联类型";}else{CA_RULETYPE = "无";}String CA_RULETEXT = dtr.GetOracleString(5).ToString(); if (CA_RULETEXT.Equals("Null") || (CA_RULETEXT.Equals("NULL"))){CA_RULETEXT = "";}String CA_RULETEXT2 = dtr.GetOracleString(6).ToString(); if (CA_RULETEXT2.Equals("Null") || (CA_RULETEXT2.Equals("NULL"))){CA_RULETEXT2 = "";}String CONTENT = dtr.GetOracleString(7).ToString();if (CONTENT.Equals("Null") || CONTENT.Equals("NULL")){CONTENT = "";}object[] data = new object[] { CA_ID, BASEID, BASENAME, CA_NAME, CA_RULETYPE, CA_RULETEXT, CA_RULETEXT2, CONTENT };this.dataGridView1.Rows.Add(false, CA_ID, BASEID, BASENAME, CA_NAME, CA_RULETYPE, CA_RULETEXT, CA_RULETEXT2, CONTENT);}OracleClass.Close();?4.在DataGridView的第一列加入checkbox并实现全选功能
(1)设置第一列为checkboxcolumn
(2)在列头加入checkbox
(3)实现全选/全不选功能
?
private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { for (int i = 0; i < dataGridView1.Rows.Count; i++) { this.dataGridView1.Rows[i].Cells[0].Value = true; } } else { for (int i = 0; i<dataGridView1.Rows.Count;i++ ) { this.dataGridView1.Rows[i].Cells[0].Value = false; } } }?5.清空DataGridView
?
dataGridView1.Rows.Clear();?6.点击左侧树节点,实现对DataGridView的动态查询
?
//树节点点击事件 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node.Text == "应用规则类型" || e.Node.Text == "设备类型名称") { dataGridView1.Rows.Clear();Load2(); } else { //点击类型节点 if (e.Node.Text == "范围匹配类型" || e.Node.Text == "标准格式类型" || e.Node.Text == "固定格式类型" || e.Node.Text == "逻辑关联类型") { dataGridView1.Rows.Clear(); OracleClass.Open(); int type = 0; if (e.Node.Text == "范围匹配类型") { type = 1; } else if (e.Node.Text == "标准格式类型") { type = 2; } else if (e.Node.Text == "固定格式类型") { type = 3; } else if (e.Node.Text == "逻辑关联类型") { type = 4; } String baseName = e.Node.Text; String sql_selectByTreeNode = "select * from DEVICE_ATTR t where t.CA_RULETYPE = " + type + " "; OracleDataReader dtr = OracleClass.QueryForReader(sql_selectByTreeNode); if (dtr != null) { while (dtr.Read()) { int CA_ID = int.Parse(dtr.GetOracleNumber(0).ToString()); int BASEID = int.Parse(dtr.GetOracleNumber(1).ToString()); String BASENAME = dtr.GetOracleString(2).ToString().Substring(0, dtr.GetOracleString(2).ToString().Length - 1); String CA_NAME = dtr.GetOracleString(3).ToString(); String CA_RULETYPE = dtr.GetOracleNumber(4).ToString(); if (CA_RULETYPE.Equals("1")) { CA_RULETYPE = "范围匹配类型"; } else if (CA_RULETYPE.Equals("2")) { CA_RULETYPE = "标准格式类型"; } else if (CA_RULETYPE.Equals("3")) { CA_RULETYPE = "固定格式类型"; } else if (CA_RULETYPE.Equals("4")) { CA_RULETYPE = "逻辑关联类型"; } else { CA_RULETYPE = "无"; } String CA_RULETEXT = dtr.GetOracleString(5).ToString(); if (CA_RULETEXT.Equals("Null") || CA_RULETEXT.Equals("NULL")) { CA_RULETEXT = ""; } String CA_RULETEXT2 = dtr.GetOracleString(6).ToString(); if (CA_RULETEXT2.Equals("Null") || CA_RULETEXT2.Equals("NULL")) { CA_RULETEXT2 = ""; } String CONTENT = dtr.GetOracleString(7).ToString(); if (CONTENT.Equals("Null") || CONTENT.Equals("NULL")) { CONTENT = ""; } object[] data = new object[] { CA_ID, BASEID, BASENAME, CA_NAME, CA_RULETYPE, CA_RULETEXT, CA_RULETEXT2, CONTENT }; this.dataGridView1.Rows.Add(false, CA_ID, BASEID, BASENAME, CA_NAME, CA_RULETYPE, CA_RULETEXT, CA_RULETEXT2, CONTENT); } OracleClass.Close(); } } //点击设备名称 else { dataGridView1.Rows.Clear(); OracleClass.Open(); String baseName = e.Node.Text; String sql_selectByTreeNode = "select * from DEVICE_ATTR t where t.BASENAME = " + " '" + baseName + "$' "; OracleDataReader dtr = OracleClass.QueryForReader(sql_selectByTreeNode); if (dtr != null) { while (dtr.Read()) { int CA_ID = int.Parse(dtr.GetOracleNumber(0).ToString()); int BASEID = int.Parse(dtr.GetOracleNumber(1).ToString()); String BASENAME = dtr.GetOracleString(2).ToString().Substring(0, dtr.GetOracleString(2).ToString().Length - 1); String CA_NAME = dtr.GetOracleString(3).ToString(); String CA_RULETYPE = dtr.GetOracleNumber(4).ToString(); if (CA_RULETYPE.Equals("1")) { CA_RULETYPE = "范围匹配类型"; } else if (CA_RULETYPE.Equals("2")) { CA_RULETYPE = "标准格式类型"; } else if (CA_RULETYPE.Equals("3")) { CA_RULETYPE = "固定格式类型"; } else if (CA_RULETYPE.Equals("4")) { CA_RULETYPE = "逻辑关联类型"; } else { CA_RULETYPE = "无"; } String CA_RULETEXT = dtr.GetOracleString(5).ToString(); if (CA_RULETEXT.Equals("Null") || CA_RULETEXT.Equals("NULL")) { CA_RULETEXT = ""; } String CA_RULETEXT2 = dtr.GetOracleString(6).ToString(); if (CA_RULETEXT2.Equals("Null") || CA_RULETEXT2.Equals("NULL")) { CA_RULETEXT2 = ""; } String CONTENT = dtr.GetOracleString(7).ToString(); if (CONTENT.Equals("Null") || CONTENT.Equals("NULL")) { CONTENT = ""; } object[] data = new object[] { CA_ID, BASEID, BASENAME, CA_NAME, CA_RULETYPE, CA_RULETEXT, CA_RULETEXT2, CONTENT }; this.dataGridView1.Rows.Add(false, CA_ID, BASEID, BASENAME, CA_NAME, CA_RULETYPE, CA_RULETEXT, CA_RULETEXT2, CONTENT); } OracleClass.Close(); } }?7.判断DataGridView中checkbox选中的个数
?
//判断checkbox中选中的个数 int count = 0; for (int i = 0; i<dataGridView1.Rows.Count;i++ ) { DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]; if((Boolean)chk.EditedFormattedValue==true){ count++; } }?8.获取被选中checkbox
?
//获取被选中checkbox的数据 for (int i = 0; i<this.dataGridView1.Rows.Count;i++ ) { DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0]; if((Boolean)chk.EditedFormattedValue==true){ ruleId = int.Parse(this.dataGridView1.Rows[i].Cells["ruleID"].Value.ToString()); equipmentId = int.Parse(this.dataGridView1.Rows[i].Cells["equipmentId"].Value.ToString()); equipmentName = this.dataGridView1.Rows[i].Cells["equipmentName"].Value.ToString(); propertyName = this.dataGridView1.Rows[i].Cells["propertyName"].Value.ToString(); if (this.dataGridView1.Rows[i].Cells["ruleType"].Value.ToString() == "逻辑关联类型") { ruleType = 4; } else if (this.dataGridView1.Rows[i].Cells["ruleType"].Value.ToString() == "固定格式类型") { ruleType = 3; } else if (this.dataGridView1.Rows[i].Cells["ruleType"].Value.ToString() == "标准格式类型") { ruleType = 2; } else if (this.dataGridView1.Rows[i].Cells["ruleType"].Value.ToString() == "范围匹配类型") { ruleType = 1; } else if (this.dataGridView1.Rows[i].Cells["ruleType"].Value.ToString() == "无") { ruleType = -1; } ruleRequest = this.dataGridView1.Rows[i].Cells["ruleRequest"].Value.ToString(); ruleRequestOther = this.dataGridView1.Rows[i].Cells["ruleRequestOther"].Value.ToString(); ruleExplain = this.dataGridView1.Rows[i].Cells["ruleExplain"].Value.ToString(); break; } }