1.不显示第一个空白列 RowHeaderVisible属性设置为false
2.点击cell选取整行 SelectinModel属性FullRowSelect RowSelectinModel属性设置 或用CellClick事件也可以 //整行选取 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { //e.RowIndex > -1否则点击header也是叫一列 if (dataGridView1.Rows.Count > 0 && e.RowIndex > -1) { //MessageBox.Show(e.RowIndex.ToString()); dataGridView1.Rows[e.RowIndex].Selected = true; } } 3.添加按钮图片按钮列事件 按钮上要显示文字要设置Text属性。默认是没有值的。但还没搞清楚,为什么DataPropertyName绑定字段,不显示。所以想获得如ID这些识别记录的值只有放到其他列了。 //按钮事件 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 1) { MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString()); } } 4.添加外部按钮取得选取列 private void button1_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { MessageBox.Show(dataGridView1.SelectedRows[0].Cells[1].Value.ToString()); } } 5.其他设置的。 是否允许多行选取:MultiSelect 。 不自动绑定数据表里的字段。 让最后一列宽度延伸满适应上级的宽度:设置改列AutoSizeModel为Fill
6 //dataGridView 删除某一列的操作 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == -1) { return; } string action = dataGridView1.Columns[e.ColumnIndex].Name;//操作类型 if (action == "DelOrder") { if (MessageBox.Show("确定删除吗?", "提示", MessageBoxButtons.OKCancel,MessageBoxIcon.Warning) == DialogResult.OK) { string ID = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString(); SellBiClass.DelRules(ID);
} } NewLoad(); } void NewLoad() { dataGridView1.DataSource = SellBiClass.GetRules(); } 7 //dataGridView 格式化每一列 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 7) //哪一列 { if (e.Value.ToString()=="1") { e.Value = "特定比例"; } else { e.Value = "默认比例"; e.CellStyle.ForeColor = Color.Red; } }
} 8 获得dataGridView 某一条记录的主键id this.dataGridView1[第几列, this.dataGridView1.CurrentCell.RowIndex].Value.ToString() 9 不显示出dataGridView1的最后一行空白 dataGridView1.AllowUserToAddRows = false; 设置上这条语句即可黑色头发
10 contextMenuStrip 属性:当用记右击该控件时显示的快捷方式.
11导出excel
private void pictureBox4_Click(object sender, EventArgs e) { #region 导出 if (dataGridView1.Rows.Count > 0) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.DefaultExt = "xls"; saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls"; saveFileDialog.FilterIndex = 0; saveFileDialog.FileName = "客户信息"; saveFileDialog.RestoreDirectory = true; saveFileDialog.CreatePrompt = true; saveFileDialog.Title = "导出到EXCEL"; saveFileDialog.ShowDialog(); if (saveFileDialog.FileName == "") return; Stream myStream; myStream = saveFileDialog.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0)); string str = ""; try { for (int i = 0; i < dataGridView1.ColumnCount; i++) { if (i > 0) { str += "\t"; } str += dataGridView1.Columns[i].HeaderText; } sw.WriteLine(str); for (int j = 0; j < dataGridView1.Rows.Count; j++) { string tempStr = ""; for (int k = 0; k < dataGridView1.Columns.Count; k++) { if (k > 0) { tempStr += "\t"; } tempStr += dataGridView1.Rows[j].Cells[k].Value.ToString(); } sw.WriteLine(tempStr); } sw.Close(); myStream.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { sw.Close(); myStream.Close(); } } #endregion }
12.计算总记录数 (dataGridView1.Rows.Count>0) dataGridView1.Rows.Count>-1包括标题列
13使用button控件进行修改dataGridView中的某一行数据或删除某一行记录 private void pictureBox2_Click(object sender, EventArgs e) { #region 赋值 if (dataGridView1.Rows.Count > 0) { EmpInfo empInfo = new EmpInfo(); int index = dataGridView1.CurrentRow.Index;
//记录复制到文本框 empInfo.EmpId = dataGridView1.Rows[index].Cells[0].Value.ToString(); empInfo.EmpName = dataGridView1.Rows[index].Cells[1].Value.ToString(); empInfo.EmpSex = dataGridView1.Rows[index].Cells[2].Value.ToString(); empInfo.EmpPhone = dataGridView1.Rows[index].Cells[3].Value.ToString(); empInfo.EmpDate = Convert.ToDateTime(dataGridView1.Rows[index].Cells[4].Value); empInfo.EmpPhone = dataGridView1.Rows[index].Cells[5].Value.ToString(); empInfo.EmpEdu = dataGridView1.Rows[index].Cells[6].Value.ToString(); empInfo.EmpMarriage = dataGridView1.Rows[index].Cells[7].Value.ToString(); empInfo.EmpBirth = Convert.ToDateTime(dataGridView1.Rows[index].Cells[8].Value.ToString()); empInfo.EmpCard = dataGridView1.Rows[index].Cells[9].Value.ToString(); empInfo.EmpAddress = dataGridView1.Rows[index].Cells[10].Value.ToString(); empInfo.EmpRemark = dataGridView1.Rows[index].Cells[11].Value.ToString(); EmpNews empNews = new EmpNews(empInfo); empNews.ShowDialog(); dataGridView1.DataSource = HXX.SeleEmp(); } #endregion }
private void pictureBox3_Click(object sender, EventArgs e) { #region 删除 if (dataGridView1.Rows.Count > 0) { int index = dataGridView1.CurrentRow.Index; string EmpId = dataGridView1.Rows[index].Cells[0].Value.ToString(); if (MessageBox.Show("删除后将不能恢复!", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { HXX.deleEmp(EmpId); dataGridView1.DataSource = HXX.SeleEmp(); } } #endregion }
|
请发表评论