问题1:请问如何在winform下,将datagrid能做成和webfrom 下的datagrid一样,这里说一样指的是能不能在里面添加一行button列,并且写相应的点击事件(其实这部分是可以实现,但存在下面的第二个问题)
问题2:以前看到csdn上有人解答过这个问题,就是用这个方法Button btn1 = new Button();
btn1.Height = 15;
btn1.Width = 60;
btn1.ForeColor=System.Drawing.Color.Red;
DataGridTextBoxColumn SelectedBox = (DataGridTextBoxColumn)dataGrid1.TableStyles[0].GridColumnStyles[3];
SelectedBox.TextBox.Controls.Add(btn1);
但是我看这种方法在开始的时候并不显示出这些button只有点击后才能显示,有人说要重写paint()方法,我不会,希望哪位达人予以解决!
问题3:其实上面的两个问题都源于这里,我希望实现的功能是:
比如一个datagrid有三列,第一列是序号,第二列是名称,第三列是个button,然后点击button就能取得相应的行的序号内容,从而在其它的地方进行操作,不知道这种如何实现!

解决方案 »

  1.   

    我也想在Winform中实现这功能
    学习中
      

  2.   

    重写paint()方法
    ----------------------
    1.先继承
    public class mydatagrid : DataGrid
    {
    ...
    }
    2.重写paint方法
    public override paint
    {
    //
    ............your own code
    //
    base.paint;//调用基类的paint方法
    }
      

  3.   

    本示例从现有的 DataGrid 控件(由整数值填充)中检索选定的数据。示例
    System.Windows.Forms.DataGridCell selectedCell = dataGrid1.CurrentCell;
    object selectedItem = dataGrid1[selectedCell.RowNumber, selectedCell.ColumnNumber];
    int cellValue = Convert.ToInt32(selectedItem);
    编译代码
    本示例需要: 名为 dataGrid1 的 DataGrid 控件。 
    可靠编程
    如果 DataGrid 未绑定到某一数据源或者未选定任何单元格,则选定的单元格就是行 0 和列 0 中的单元格。以下情况可能会导致异常: DataGrid 控件未绑定到数据源(InvalidOperationException 类)。 
    该单元格的数据类型中不包含您试图转换成的数据类型(InvalidCastException 类)。 
    请参见
    Windows 窗体示例主题 | 代码:确定 Windows DataGrid 控件中的所选单元格 | DataGrid.CurrentCell 属性 | DataGrid 控件(Windows 窗体)
      

  4.   

    呵呵,兄弟,就是因为不知道paint()这些怎么写呀,不过好像msdn上有一段类似的,扩展一列timer控件列,我先研究一下吧,如果有收获也来帖在这里!