使用DataGridView时遇到的一些问题 1.如何使它的默认索引关掉?(不用去设置每个列的sortmode)2.如何给列头加上自己的图标?它默认的是灰色(索引时)。3.如何判断鼠标点击的是哪个列头?4.如何显示行号?5.索引后行号会发生变化吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第三个问题:比如点击一列获取该行的某个属性比如IDint id;id = Convert.ToInt32(dgv.Rows[dgv.CurrentCell.RowIndex].cells["TypeID"].Value.ToString()); 第一个问题:关掉默认索引在DataGridView的RowPostPaint事件中添加以下代码:DataGridView DGV = sender as DataGridView;for (int i = 0; i < DGV.Columns.Count; i++){ DGV.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;}--------------------------------------------------------------------第三个问题:如何判断单击的是哪一个列头在DataGridView的ColumnHeaderMouseClick事件中添加以下代码:DataGridView DGV = sender as DataGridView;int i = e.ColumnIndex;string column_name = DGV.Columns[i].Name;MessageBox.Show(column_name)显示列名--------------------------------------------------------------------第四个问题:显示行号在DataGridView的RowPostPaint事件中添加以下代码:DataGridView DGV = sender as DataGridView;Rectangle rec = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, DGV.RowHeadersWidth - 4, e.RowBounds.Height);TextRender.DrawText(e.Graphics, (e.RowIndex+1).ToString(), DGV.RowHeadersDefaultCellStyle.Font, rec, DGV.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter|TextFormatFlags.Right);第五个问题:索引后行号不会发生变化。 王锦,你好!有一个datagridview绑定一个table,用户先对datagridview进行排序,然后对table增加了一条记录,想让dtagridview显示这条新增的记录,代码如何写? 要在DataTable中增加一条记录显示在DataGridView,如果两者已经绑定,增加完后就会显示,如下:假设你说的DataTable名称为table1DataRow dr = table1.NewRow();dr.BeginEdit();dr["字段名1"] = value1;dr["字段名2"] = value2;dr["字段名3"] = value3;......dr.EndEdit();table1.Rows.Add(dr);table1.AcceptChanges();这样应该就可以,DataGridView就会显示刚刚添加的新行。 王锦,你好!我使用BindingManagerBase bmb;与DataTable连接bmb.Position = bmb.Count - 1;用这一行移动记录;在没有排序时,可以,问题是点击‘编号’排序后再增加,就不会在当前的datagridview里显示刚增加上的记录? 2.如何给列头加上自己的图标?它默认的是灰色(索引时)。 --------------------表头样式你可以在里面用样式啊!控件属性 Columns找到你的字段在HeaderStyle里面有个CssClass你可以自己写你想要的样式哦 这个属性,在winforms - DataGridView - Columns里没有找到,初学C#,能麻烦你说具体一下? 看看这篇文章,对你是否有帮助http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx socket的接受0字节的处理 高手快来解决!!! 我这个导出Excel表为什么会导出两次呢? 菜鸟问题,在线等~ 关于分配算法的问题,急用!!! 难道真的没有人能解决这个问题吗......再来100分!请帮助 与XML的操作, xml文档怎么会保持不变呢?? 不懂 在.net中如何打开调用excel程序打开一个excel文件? 就像直接双击这个文件一样。 如何用c#编写远程控制软件? 请问如何把excel某个单元格数据导入数据库的指定列 c#动态数组问题 怎样用form做出向导对话框效果?就是有“下一步”“上一步”的对话框
比如点击一列获取该行的某个属性
比如ID
int id;
id = Convert.ToInt32(dgv.Rows[dgv.CurrentCell.RowIndex].cells["TypeID"].Value.ToString());
在DataGridView的RowPostPaint事件中添加以下代码:DataGridView DGV = sender as DataGridView;
for (int i = 0; i < DGV.Columns.Count; i++)
{
DGV.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}--------------------------------------------------------------------第三个问题:如何判断单击的是哪一个列头
在DataGridView的ColumnHeaderMouseClick事件中添加以下代码:
DataGridView DGV = sender as DataGridView;
int i = e.ColumnIndex;
string column_name = DGV.Columns[i].Name;
MessageBox.Show(column_name)显示列名--------------------------------------------------------------------第四个问题:显示行号
在DataGridView的RowPostPaint事件中添加以下代码:
DataGridView DGV = sender as DataGridView;
Rectangle rec = new Rectangle(e.RowBounds.Location.X,
e.RowBounds.Location.Y,
DGV.RowHeadersWidth - 4,
e.RowBounds.Height);
TextRender.DrawText(e.Graphics,
(e.RowIndex+1).ToString(),
DGV.RowHeadersDefaultCellStyle.Font,
rec,
DGV.RowHeadersDefaultCellStyle.ForeColor,
TextFormatFlags.VerticalCenter|TextFormatFlags.Right);第五个问题:索引后行号不会发生变化。
有一个datagridview绑定一个table,用户先对datagridview进行排序,然后对table增加了一条记录,
想让dtagridview显示这条新增的记录,代码如何写?
dr.BeginEdit();
dr["字段名1"] = value1;
dr["字段名2"] = value2;
dr["字段名3"] = value3;
......
dr.EndEdit();
table1.Rows.Add(dr);
table1.AcceptChanges();这样应该就可以,DataGridView就会显示刚刚添加的新行。
我使用BindingManagerBase bmb;与DataTable连接
bmb.Position = bmb.Count - 1;用这一行移动记录;在没有排序时,可以,问题是点击‘编号’排序后再增加,就不会在当前的datagridview里显示刚增加上的记录?
表头样式
你可以在里面用样式啊!
控件属性 Columns找到你的字段
在HeaderStyle里面有个CssClass
你可以自己写你想要的样式哦
这个属性,在winforms - DataGridView - Columns里没有找到,
初学C#,能麻烦你说具体一下?
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx