在Datagrid中第一列要求新增一条自动加一,这个到容易实现;
可是要求删除中间记录后,要重新从1排序。
请教大家。
可是要求删除中间记录后,要重新从1排序。
请教大家。
解决方案 »
- 小问题
- 都进来看看吧!
- [100分]怎么把InkCanvas的墨迹识别为规则的几何图形
- C# 绘图求救
- 高级问题,非牛勿扰。哈哈
- Form.showdialog()怎么visiblechanged事件代码无效啊?
- try catch 捕获到异常后...
- C#如何判断执行后的结果?
- WinForm中DataGrid列合计问题?怎样才能实现这样的效果,解决护马上结帖
- 当有一个更早的异步调用正在进行时,不能阻止调用此套接字
- 一个字符串,如何让与它同名的函数执行?在线等
- 弱问:vs.net里面如何简单地刷新窗体里label控件的内容(使用Timer或System.Envirment.TickCount)
/// <summary>
/// 行号列
/// </summary>
public class RowNumberColumnStyle : DataGridTextBoxColumn
{
private int nSelectedRowIndex;
protected override object GetColumnValueAtRow(CurrencyManager source, int rowNum)
{
return rowNum + 1;
}
protected override void SetColumnValueAtRow(CurrencyManager source, int rowNum, object value)
{
base.SetColumnValueAtRow (source, rowNum, rowNum + 1);
}
protected override void Edit(System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Rectangle bounds, bool readOnly, string instantText, bool cellIsVisible)
{
if (source.List!=null)
{
if (nSelectedRowIndex > -1 && nSelectedRowIndex < source.List.Count)
{
this.DataGridTableStyle.DataGrid.UnSelect(nSelectedRowIndex);
}
}
this.DataGridTableStyle.DataGrid.Select(rowNum);
nSelectedRowIndex = rowNum;
}
protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight)
{
Rectangle rect = bounds;
object objValue = rowNum + 1; g.FillRectangle(backBrush,rect);
rect.Offset(0, 2);
rect.Height -= 2;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
g.DrawString(objValue.ToString(), this.DataGridTableStyle.DataGrid.Font, foreBrush, rect, sf);
}
}