DataGridView控件
可以自己设计DataGridView的列,dgv常用的属性:
dgvShow1.DataSource = null;
dgvShow1.Rows.Clear();//首先清空行
dgvShow1.Columns.Clear();//清空列
dgvShow1.AutoGenerateColumns = false;//自动列设置为false,还有就是想让其显示时不出现多一行则将自动增加行业设为false
DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn();//创建TextBox列
column1.Name = "VERSION_ID";//设置列名
column1.DataPropertyName = "VERSION_ID";//设置列要映射的表格的列名
column1.Visible = false;//这列是否显示
column1.width来设置宽度
dgvShow1.Columns.Add(column1);//将列加入到dgvShow1的列集合内
dgv常用的事件:cellClick
private void dgvShow1_CellClick(object sender, DataGridViewCellEventArgs e)
{
//MessageBox.Show(e.ColumnIndex.ToString());
//MessageBox.Show(e.RowIndex.ToString());
if (e.RowIndex != -1)//判断是否点击的是标题行
if (e.ColumnIndex == 2)//触发事件的列
{
txtVersion.Text = dgvShow1.Rows[e.RowIndex].Cells["VERSION_NUMBER"].Value.ToString();
txtDescription.Text = dgvShow1.Rows[e.RowIndex].Cells["VERSION_DESCRIPTION"].Value.ToString();
txtRemarks.Text = dgvShow1.Rows[e.RowIndex].Cells["VERSION_DETAIL_REMARKS"].Value.ToString();
txtDetailId.Text = dgvShow1.Rows[e.RowIndex].Cells["DETAIL_ID"].Value.ToString();
txtVersionId.Text = dgvShow1.Rows[e.RowIndex].Cells["VERSION_ID"].Value.ToString();
txtMessage.Text = "true";
}
if (e.ColumnIndex == 3)
{
int versionId;
int detailId;
if (e.RowIndex == (this.dgvShow1.RowCount - 1))
{
return;
}
int versionNumber = Convert.ToInt32(dgvShow1.Rows[e.RowIndex].Cells["VERSION_NUMBER"].Value.ToString());
if (dgvShow1.Rows[e.RowIndex].Cells["DETAIL_ID"].Value.ToString() == String.Empty)
{
versionId = Convert.ToInt32(dgvShow1.Rows[e.RowIndex].Cells["VERSION_ID"].Value.ToString());
detailId = 0;
}
else
{
versionId = Convert.ToInt32(dgvShow1.Rows[e.RowIndex].Cells["VERSION_ID"].Value.ToString());
detailId = Convert.ToInt32(dgvShow1.Rows[e.RowIndex].Cells["DETAIL_ID"].Value.ToString());
}
VersionDataFacade versionDataFacade = new VersionDataFacade();
versionDataFacade.DeleteVersionData(versionId, detailId, versionNumber);
ClearAllTxt();
}
}
}
dgv的cellPainting事件,你在该事件内不加如任何的东西,直接MessageBox.show方法就可以看清这个事件的执行过程,他是遍历每一行的单元格进行输出:
private void dgvShow1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
int rowsCount = dgvShow1.RowCount;//计算当前的行数
if (e.ColumnIndex >= this.dgvShow1.Columns["Edit"].Index && e.RowIndex == (rowsCount - 1))//判断是否到了最后一行的第一个单元格
{
using (
Brush gridBrush = new SolidBrush(this.dgvShow1.GridColor),//创建gridBrush和backColorBrush,边框刷和内容刷子
backColorBrush = new SolidBrush(e.CellStyle.BackColor))
{
using (Pen gridLinePen = new Pen(gridBrush))//创建画笔
{
e.Graphics.FillRectangle(backColorBrush, e.CellBounds);//填充单元格
e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left,//画框线,e.cellbounds.left是左边线,e.cellbounds.bottom-1下边线,这时
e.CellBounds.Bottom - 1, e.CellBounds.Right - 1,//两条线相交的是单元格的左下点,接着在right-1和bottom-1得到的是单元格的右下点
e.CellBounds.Bottom - 1);
if (e.ColumnIndex == this.dgvShow1.Columns["VERSION_UPDATE"].Index)
{
e.Graphics.DrawString("合计", e.CellStyle.Font,//填写内容
Brushes.Crimson, e.CellBounds.X + 2,
e.CellBounds.Y + 2, StringFormat.GenericDefault);
}
if (e.ColumnIndex == this.dgvShow1.Columns["VERSION_DESCRIPTION"].Index)
{
e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left - 1,
e.CellBounds.Bottom - 1, e.CellBounds.Left - 1,
e.CellBounds.Top - 1);
e.Graphics.DrawString((rowsCount - 1).ToString(), e.CellStyle.Font,
Brushes.Crimson, e.CellBounds.X + 2,
e.CellBounds.Y + 2, StringFormat.GenericDefault);
}
e.Handled = true;//如果不是,就当这个单元格已经处理过了,步子啊进行处理
}
}
}
}
分享到:
相关推荐
基于C#的WinForm中DataGridView控件操作汇总
dbfC#DataGridView中的常用技巧 只列出技巧部分,后面会有补充 0(最基本的技巧). 获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource,...
c# winform ===datagridview 单元格合并 c# winform ===datagridview 单元格合并 c# winform ===datagridview 单元格合并
c#winform程序打包c#winform程序打包部署借鉴.pdf
c#winform程序打包c#winform程序打包部署知识.pdf
c#winform程序打包c#winform程序打包部署整理.pdf
c#winform程序打包c#winform程序打包部署收集.pdf
网上下的”C# winform下的DataGridview分页控件源代码“ 希望网友们有时间可以再改善一下
c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
C# 中WinForm 自定义 多选框, 不过改自定义控件的性能不太好,欢迎大家多多协助改进。 软件架构 使用微软最新dotNet6 框架开发,里面的自定定义控件理论上能在net 所有winform 系列中通用 使用说明 初始化选中...
C# Winform程序界面优化实例.doc
c#winform程序打包部署借鉴.pdf
winform DataGridView 合计 行 控件 winform DataGridView 合计 行 控件
基于C_的WinForm中DataGridView控件操作汇总.doc
C#_winform_DataGridView_checkbox复选框_实现单选效果
winform_DataGridView常见属性
C# Winform 自定义 日程日历控件